web-dev-qa-db-fra.com

Catégorie automatique pour un type de message personnalisé

J'ai créé deux nouveaux CPT appelés "Critiques de films" et "Critiques de jeux". Sur mon site Web, j'ai également une catégorie appelée "Critiques" dans laquelle vous pouvez trouver deux sous-catégories: "Critiques de films" et "Critiques de jeux".

J'ai vu que je pouvais définir une taxonomie spécifique pour chaque CPT, mais ce que je veux, c'est de définir automatiquement une catégorie spécifique pour chaque publication de ce CPT. Par exemple, si j'écris une critique de film dans mes "Critiques de films" du CPT, je souhaite définir automatiquement la catégorie de ce message en tant que "Commentaires" - "Critiques de films", car chaque publication sous ce CPT sera ainsi.

Est-ce possible? Comment dois-je procéder?

1
Neks

Vous devrez exécuter une action pour vérifier le type de publication chaque fois qu'une nouvelle publication est créée.

Ajoutez simplement ce code dans functions.php dans le dossier de votre thème actif situé dans " wp-content/themes "

function post_auto_cat( $post_ID ) {
    $post_type = 'Your custom post type. For example: movie';
    $cat_id = 123; // Your reviews category id (for example: 123)
    $post_categories=array($cat_id);

    // check if current post type is movie review
    if(get_post_type($post_ID)==$post_type) {
        // assign a category for this post by default
        wp_set_post_categories( $post_ID, $post_categories );
    }

   return $post_ID;
}
add_action( 'publish_post', 'post_auto_cat' );

Il attribuera la catégorie pour chaque publication avec le type de publication personnalisé 'movie' aux critiques de catégorie avec l'ID 123 - CHAQUE fois qu'une nouvelle publication est publiée.

Si vous voulez que cette vérification soit déclenchée chaque fois qu'une publication est mise à jour (pas seulement publiée), vous devrez modifier la dernière ligne de

add_action( 'publish_post', 'post_auto_cat' );

à

add_action( 'save_post', 'post_auto_cat' );

Remember pour changer les valeurs du code mentionné ci-dessus en vos valeurs (type de post et id de la catégorie)

Ce code a l'air légitime, mais je n'ai pas testé. N'oubliez pas de sauvegarder vos fichiers/votre base de données avant de l'utiliser.

0
Hamo