Custom Post Types

Any custom post types are fully supported by my crossposting plugins. But in some cases a little bit of configuration is required.

1. Allow Your Custom Post Type for Crossposting

If “Publish on” section isn’t displayed for your custom post type at all, then please check that the custom post type is allowed for crossposting in plugin settings:

Example:

custom post types allowed for crossposting
Crossposting settings of the multisite version of the plugin.

Not-public post types

In case you decided to leave “Allowed Post Types” option empty, then the crossposting is going to work for all public post types by default. It means that when this custom post type is registered, its public parameter should be set to true.

register_post_type(
	'articles',
	array(
		'public' => true, // here it is
		
		...

Yes, seems quite obvious, but sometimes when doing their post type configuration, clients use public => false, show_ui => true. So it doesn’t change anything in admin UI, but my plugin thinks another way.

2. Configure Your Custom Post Type for Crossposting

Sometimes you may try to crosspost a custom post type but instead when you open a custom post in Block Editor (Gutenberg) or try to create a new one, you get a message like this:

Custom post type is not configured for crossposting

Good news – it is super-easy to fix. All you need to do is to add custom-fields value to supports parameter while registering a custom post type. Example:

register_post_type(
	'articles',
	array(
		
		...
		
		'supports' => array( 'title', 'editor', 'custom-fields' )
	)
);

CPT UI example

Or if you’re using a third party plugin for that, for example CPT UI, then just make sure that you have an appropriate checkbox checked.

CPT UI custom fields support

Pods example

It is done similarly in another custom post type plugin – Pods. Just edit pod and then switch to Advanced Options tab.

configure custom post type in Pods plugin
Do not worry about what they are saying about slow performance. Anyways, if you care about site performance, you’d better register custom post types in functions.php

What if a post type is registered inside another plugin and you don’t want to change its code?

In this case filter hook register_post_type_args is here to help you. Example:

add_filter( 'register_post_type_args', function( $args, $post_type ) {
	
	if( 'POST TYPE NAME' === $post_type ) {
		// we just add 'custom-fields' to an existing array of supported stuff
		$args[ 'supports' ][] = 'custom-fields';
	}
	return $args;
	
}, 10, 2 );

Or you can use add_post_type_support() function.

add_action( 'init', function() {
	add_post_type_support( 'POST TYPE NAME', 'custom-fields' );
}, 999 );

Other Issues

Sometimes the conflict can be created by a 3rd party plugin. So if you tried everything mentioned in this article and nothing helped, please try to deactivate your website plugins one by one and see if it makes any difference.

For example recently I found a conflict in “Kia Subtitle” plugin. Once I deactivated that plugin, all started to work great.

Also you can see on the plugin’s page that it is outdated and may not work properly.

outdated WordPress plugins may cause conflicts

Need more help?