JetEngine – How to Configure for Crossposting
My crossposting plugins have full support of custom post types and custom fields created with JetEngine. However, their plugin should be configured properly.
First things first, let me remind you that post types should have the same Post Type Slug and custom fields should have the same Name/ID on all the sites you’re about to crosspost between. If you create a support ticket, and I find out that there is just a mismatch in a custom field name, I will be very upset.
Second, if you’re using Simple WordPress Crossposting (a non-multisite version of the plugin), please don’t forget to allow custom fields for REST API, just check the Show in Rest API checkbox in every custom field settings:

That’s pretty much it, most of the custom fields are going to work by default, the only thing if you’re about to use one of the following field types:
- Media,
- Gallery,
- Posts,
then please install and activate the appropriate add-on below.
In case you’re using a multisite version of the plugin:
For a regular version of the plugin:
Custom post types created with JetEngine
There are two settings in JetEngine custom post type configuration that require your undivided attention. Both of them can be found in the Advanced Settings section.
Show in Rest API should be checked:

The “Custom fields” option should be added to the Supports parameter:

A short video in case you can not find the mentioned settings:
JetEngine plugin’s issues
For me, it is not 100% clear why such popular plugins like ACF and JetEngine have clear issues which may exist for years.
Anyway, all we can do is to find a workaround. I found that there is an issue with some field types that are not correctly registered in the REST API. For example, it is the fields with the “Advanced Date” type. When you try to update this field, you most likely get an error message “meta.my_date is not of type object”. The easiest way to fix it is to deactivate Show in Rest API toggle I mentioned above (I recommend doing it on all sites, by the way).

Ok, the issue is kind of fixed; however, we still need to register our advanced date field in the REST API, and this is how to do that step by step. In my case, I just needed to use the code snippet below on my target site:
add_action( 'rest_api_init', function() {
register_meta( 'post', 'my_date', array( 'type' => 'string', 'single' => true, 'show_in_rest' => true ) );
register_meta( 'post', 'my_date__config', array( 'type' => 'string', 'single' => true, 'show_in_rest' => true ) );
register_meta( 'post', 'my_date__end_date', array( 'type' => 'string', 'single' => true, 'show_in_rest' => true ) );
} );Basically, you need to take the field configuration from Settings > Crosspost > Metadata, but not for all the fields, only for the fields that are broken in JetEngine.