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_category
paramè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 Library
de votre site Web, vous pouvez l’utiliser comme pièce jointe pour votre article/page en utilisant ID
comme suit :
'_thumbnail_id' => 110
Si vous ne l’avez pas, vous devez d’abord ajouter une image en tant que attachment
type à 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