Verifique se o tipo de postagem é exibido na API REST.
$args = array(
//* Use whatever other args you want
'show_in_rest' => true,
'rest_base' => 'myslug',
'rest_controller_class' => 'WP_REST_Posts_Controller',
);
register_post_type( 'myslug', $args );
O endpoint para criar uma postagem seria, então, http://example.com/wp-json/wp/v2/myslug
.
Editar:
O que precede é tudo o que é necessário para que um tipo de postagem personalizada esteja disponível como um ponto de extremidade REST usando o WP_REST_Posts_Controller padrão. Inicialmente tive o seguinte código, porque acho que é mais fácil usar a API REST. No entanto, como apontado nos comentários, não é necessário responder a essa pergunta. Você pode simplesmente usar o endpoint.
function wpse294085_wp_enqueue_scripts() {
wp_enqueue_script( 'wp-api' );
wp_enqueue_script( 'my-script', PATH_TO . 'my-script.js', [ 'wp-api' ] );
}
add_action( 'wp_enqueue_scripts', 'wpse294085_wp_enqueue_scripts' );
Então, em my-script.js, use o Backbone.
wp.api.loadPromise.done( function() {
var post = new wp.api.models.Myslug( {
'id': null,
'title': 'Example New Post',
'content': 'YOLO'
} );
var xhr = post.save();
});