WordPress : Ajouter un article avec une catégorie par programme
J’utilise la wp_insert_post()fonction pour créer un article avec des données personnalisées mais je ne parviens pas à ajouter des catégories et une image en vedette dans l’article, mon code est ci-dessous :
$new_post = array(
'post_title' => $leadTitle,
'post_content' => $leadContent,
'post_status' => $postStatus,
'post_date' => $timeStamp,
'post_author' => $userID,
'post_type' => $postType,
'post_category' => array('language'),
'tags_input' => array('Language',"Temp")
);
$post_id = wp_insert_post($new_post);
Y a-t-il quelque chose qui ne va pas?
Solution n°1 trouvée
Please check below code:
$my_post = array();
$my_post['post_title'] = 'My post';
$my_post['post_content'] = 'This is my post.';
$my_post['post_status'] = 'publish';
$my_post['post_author'] = 1;
$my_post['post_category'] = array(0);
// Insert the post into the database
wp_insert_post( $my_post );"
Ou
$new_post = array(
'post_title' => $leadTitle,
'post_content' => $leadContent,
'post_status' => $postStatus,
'post_date' => $timeStamp,
'post_author' => $userID,
'post_type' => $postType,
'post_category' => array('language'),
'tags_input' => array('Language',"Temp")
);
$post_id = wp_insert_post($new_post);
Solution n°2 trouvée
Le post_categoryparamètre for wp_insert_post()doit être fourni sous forme de tableau d’identifiants de catégorie, si vos catégories ont une structure hiérarchique (pour les types de publication par défaut, c’est le cas):
'post_category' => array(90, 100)
Assurez-vous également que l’ID se trouve dans le tableau fourni en tant que int.
Plus détaillé, vous pouvez voir dans la documentation.
Si vous avez ajouté l’image dans le Media Libraryde votre site Web, vous pouvez l’utiliser comme pièce jointe pour votre article/page en utilisant IDcomme suit :
'_thumbnail_id' => 110
Si vous ne l’avez pas, vous devez d’abord ajouter une image en tant que attachmenttype à l’aide de wp_insert_attachment()la fonction.
Ainsi, votre fonction ressemblera à:
$new_post = array(
'post_title' => $leadTitle,
'post_content' => $leadContent,
'post_status' => $postStatus,
'post_date' => $timeStamp,
'post_author' => $userID,
'post_type' => $postType,
'post_category' => array(99),
'tags_input' => array('Language',"Temp"),
'_thumbnail_id' => 110
);
$post_id = wp_insert_post($new_post);
0 commentaire