J'ai un message personnalisé "artiste" et une taxonomie/catégorie "artiste" et je souhaite créer (par développement) un nouveau message et définir la catégorie de l'artiste, mais cela ne fonctionne pas.
Je l'ai testé avec ce code:
function createNewPost( $response ){
global $userMeta;
$userID = $response->ID;
$user = new WP_User( $userID );
$role = $userMeta->getUserRole();
//$catId = get_cat_ID("dj");
if( $role = 'artiste' ){
$newPost = array(
'post_title' => $user->nickname,
'post_content' => $user->description,
'post_status' => 'pending',
'post_author' => $userID,
'post_type' => 'cpt_artists',
'tax_input' => array('artist-category' => array('dj')
));
$post_id = wp_insert_post( $newPost );
wp_set_post_terms( $post_id, array( 'dj'), 'artist-category');
}
}
Mais ça ne marche pas.
Pour le test, j'ai énuméré toute la taxonomie de wordpress et le résultat est:
catégorie, post_tag, nav_menu, link_category, post_format
Pourquoi ma taxonomie personnalisée "artiste-catégorie" ne figure-t-elle pas ici?
Je sais que c'est une vieille question, mais le tableau tax_input
devrait probablement ressembler à ceci puisqu'il semble être hiérarchique comme une catégorie:
'tax_input' => array('artist-category' => array( 3 ) //use the ID of the category, not the name of the category
De WordPress Codex sur wp_set_post_terms
Si vous souhaitez entrer des termes d'une taxonomie hiérarchique comme des catégories, utilisez des identifiants. Si vous souhaitez ajouter des termes non hiérarchiques tels que des balises, utilisez des noms.
Ressources:
vous pouvez essayer quelque chose comme ceci: par exemple, votre identifiant de catégorie est 3, puis:
wp_set_post_categories($post_id, array("3"));