wp_insert_post() o similar para tipos de contenido personalizados
Necesito insertar objetos de tipo de contenido personalizado desde el código. No he podido agregarlos usando el método predeterminado
$id = wp_insert_post(array('post_title'=>'aleatorio', 'post_type'=>'custom_post'));
crea una entrada regular en su lugar.

Se puede hacer utilizando el siguiente código:
Para crear una nueva entrada de un tipo personalizado
$post_id = wp_insert_post(array (
'post_type' => 'your_post_type',
'post_title' => $your_title,
'post_content' => $your_content,
'post_status' => 'publish',
'comment_status' => 'closed', // si lo prefieres
'ping_status' => 'closed', // si lo prefieres
));
Después de insertar la entrada, la función anterior devolverá un ID de entrada. Ahora, si deseas agregar cualquier información de metadatos relacionada con esta entrada, puedes usar el siguiente fragmento de código.
if ($post_id) {
// insertar metadatos de la entrada
add_post_meta($post_id, '_your_custom_1', $custom1);
add_post_meta($post_id, '_your_custom_2', $custom2);
add_post_meta($post_id, '_your_custom_3', $custom3);
}

wp_insert_post() completará una lista predeterminada de estos, pero el usuario debe proporcionar el título y el contenido, de lo contrario, la escritura en la base de datos fallará.
$id = wp_insert_post(array(
'post_title'=>'aleatorio',
'post_type'=>'custom_post',
'post_content'=>'texto de demostración'
));

Este ejemplo me funcionó usando meta_input
$post_id = wp_insert_post(array (
'post_type' => 'your_post_type',
'post_title' => $your_title,
'post_content' => $your_content,
'post_status' => 'publish',
'comment_status' => 'closed',
'ping_status' => 'closed',
'meta_input' => array(
'_your_custom_1' => $custom_1,
'_your_custom_2' => $custom_2,
'_your_custom_3' => $custom_3,
),
));

Tuve el mismo problema. Intenté todas las soluciones proporcionadas en la mayoría de los foros. Pero la solución real que funcionó para mí fue que el tipo de publicación (post_type) tenía un problema de longitud. La longitud de post_type está limitada a 20 caracteres. Así que cualquiera que tenga un problema similar, pruebe esto si nada más ha funcionado.
