web-dev-qa-db-fra.com

Comment attribuer automatiquement une publication CPT à une catégorie dans une taxonomie personnalisée après publication?

J'utilise le code ci-dessous pour attribuer automatiquement un CPT de "élément" à un "magazine" de catégorie, lorsque l'article est enregistré/mis à jour.

function assign_item_category_automatically($post_ID) {

    global $wpdb;

    if(!wp_is_post_revision($post_ID)) {
        wp_set_object_terms( $post_ID, 'magazine', 'category');
    }
}

add_action('publish_item', 'assign_item_category_automatically');

Cela fonctionne bien, mais la catégorie à laquelle il attribue est une catégorie normale ... alors que je souhaite l'attribuer à une catégorie dans une taxonomie personnalisée uniquement pour le "élément" CPT - je ne souhaite pas que les catégories normales soient disponibles pour les publications CPT. , ou des taxonomies personnalisées disponibles pour les messages normaux.

Je ne sais pas comment modifier cela pour faire ce que je veux.

1
gulliver

Comme Documentation dit, wp_set_object_terms accepte 4 arguments: $object_id, $terms, $taxonomy, $append

  • object_id - ID de l'article, de la page, de la pièce jointe ou de tout élément figurant dans la table des articles
  • terms - slug (s) ou id (s) ou terme (s)
  • taxonomy - slug of taxonomy - dans votre cas ce sera votre slug taxonomie personnalisée
  • append - si supprime tous les termes existants affectés à object ou ajoute de nouveaux termes à la fin

Usage: wp_set_object_terms($post_id, 'magazine', 'your_taxonomy_slug', true);

1
Krzysztof Grabania