web-dev-qa-db-fra.com

Définir les termes dans un article personnalisé

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?

1
devwin

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:

1
ScottD

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"));

pour plus d'informations

0
Dk-Macadamia