Categories, Tags, Product Attributes (or any taxonomy terms) don’t appear on subsites

If you have any issues with taxonomies, please check this guide. It will also help if WooCommerce product variation aren’t crossposted properly.

1. Make sure that you have the same terms created on all sites

If you need a crossposted post on Site 2 to have the same categories (tags, taxonomy terms) as it has on Site 1, these categories should be created on Site 2 manually beforehand, with the same slugs they have on Site 1.

Why the plugin can not do it automatically? Because it will have a negative effect on your website in terms of performance.

The same applies to WooCommerce taxonomy-based attributes. Let me remind you that there are two types of product attributes in WooCommerce:

2 types of WooCommerce product attributes
“Magical” – is a custom product attribute, “Color” – is a predefined taxonomy-based attribute.

For custom product attributes you have to do nothing – they are going to be crossposted with their product without any issues. For taxonomy-based product attributes please go to Products > Attributes and create all the same on Site 2 as well (slugs should match).

If something remains unclear for you, please check the video below:

Anyway if creating terms manually on sub-sites is not an option and performance isn’t such a big deal for you, you can install and activate this free add-on:

Download Simple WP Crossposting – Terms 1.5

The add-on will work with the plugin version 3.2 and above.

2. When working with custom taxonomies, do not forget to include them in REST API when you register them

For example when you’re registering a custom taxonomy my-taxonomy using the function register_taxonomy() you have to make sure that show_in_rest argument is set to true.

		'show_in_rest' => true,

If you don’t have the access to register_taxonomy() function (maybe it is registered with some third-party plugin and you can not change its files, then you can use register_taxonomy_args filter hook. The same example:

add_filter( 'register_taxonomy_args', function( $args, $taxonomy ) {
	if( 'my-taxonomy' === $taxonomy ) {
		$args[ 'show_in_rest' ] = true;
	return $args;

}, 9999, 2 );

Need more help?