1. Activate the Plugin for Multisite Network

First things first, once you added the plugin to your website, you have to “Network activate” it. In order to do so, please go to My Sites > Network Admin > Plugins and click “Network activate” link.

how to network activate multisite crossposting plugin

2. Configure what Blogs you Would Like to Allow for Cross-Posting (Optional)

If you skip this step, the plugin is going to use the 5 sub-sites from your Network ordered by their ID.

Otherwise if you have hundreds of sub-sites in your Network, it is better to choose which ones you would like to allow for crossposting. In order to do so, please go to Network Admin > Sites, the select a website you would like to configure, click “Edit” link first, then select “Crosspost” tab.

crossposting settings in multisite

3. Select the Sub-sites When Creating a Post

In case you’re using Gutenberg editor:

post to multiple subsite in WordPress multisite network

In case you’re using Classic Editor:

classic editor and meta boxes support by crosspost plugin

4. Sync the Content Between Posts

Once you published a post on multiple website in your Network, you can deactivate the checkboxes, if you don’t, you posts will continue to sync!

This is how it would work:

Custom Crossposting Destinations

By my customer requests I decided to add two filter hooks into the plugin that allows you to change the post type and taxonomy terms of the post when crossposting it.

Below you can find two snippets of code for both of the filters. The code can be inserted into your current or child theme functions.php file.

This part of the documentation requires basic coding experience. If you have problems with it – don’t worry, me and my team will help you for free within the plugin support.

Change Post Type when Crossposting

add_filter( 'rudr_crosspost_post_type_destination', 'rudr_change_post_type', 20, 3 );

function rudr_change_post_type( $post_type, $blog_id, $data ){

	if( 3 === $blog_id ) {
		$post_type = 'page';
		// everything that is crossposting to blog ID 3 will have "page" post type
	}
	return $post_type;

}

Filter hooks sends three parameters to the function:

$post_type
(string) The post type of the original post.
$blog_id
(integer) The blog ID where the post is going to be crossposted to.
$data
(array) Contains all the data of the post.

Change Taxonomy and Terms when Crossposting

add_filter( 'rudr_crosspost_taxonomy_destination', 'rudr_change_terms', 20, 3 );

function rudr_change_terms( $terms, $blog_id, $data ){

	if( 3 === $blog_id ) {
		
		$terms = array(
			'category' => array( 'my-term-taxonomy' )
		);
		
	}
	return $terms;

}

Filter hooks sends three parameters to the function:

$terms
(array) Associative array of taxonomy=>array(term slugs) of the original post.
$blog_id
(integer) The blog ID where the post is going to be crossposted to.
$data
(array) Contains all the data of the post.