Besoin d'insérer des objets de type publication personnalisés à partir du code. N'a pas été en mesure d'ajouter en utilisant la méthode par défaut
$id = wp_insert_post(array('post_title'=>'random', 'post_type'=>'custom_post'));
crée un poste régulier à la place.
Du Codex :
wp_insert_post () remplira une liste par défaut mais l’utilisateur doit fournir le titre et le contenu, sinon l’écriture de la base de données échoue.
$id = wp_insert_post(array(
'post_title'=>'random',
'post_type'=>'custom_post',
'post_content'=>'demo text'
));
Cela peut être fait en utilisant le code suivant: -
Pour entrer un nouveau message pour un type personnalisé
$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', // if you prefer
'ping_status' => 'closed', // if you prefer
));
Après avoir inséré la publication, un identifiant de publication sera renvoyé par la fonction ci-dessus. Maintenant, si vous souhaitez entrer des informations méta postales avec ce message, le fragment de code suivant peut être utilisé.
if ($post_id) {
// insert post meta
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);
}
J'ai découvert que l'utilisation de isset()
m'autorisait à utiliser wp_insert_post()
sur des types de publication personnalisés:
if ( !isset( $id ) ) {
$id = wp_insert_post( $new, true );
}