WordPress : Utilisation de la fonction has_term() pour la structure catégorie-sous-catégorie

Publié par Jean-Michel le

Je dois vérifier plus d’une sous-catégorie pour la fonction has-term(). Par exemple; Supposons que j’ai 2 catégories; Bars et musiciens. De plus, la catégorie Musiciens a Jazz, Rock, Pop comme sous-catégorie. Mais ce sont aussi des sous-catégories pour les bars.

Je veux écrire des codes différents pour les catégories Bars – Jazz, Musiciens – Jazz.

Cette structure de code ne fonctionne pas pour moi.

if( has_term( 'jazz', 'genre' ) ) {
    // do something
}

Parce que j’ai une sous-catégorie jazz sous Bars and Musicians.

Quand j’ai écrit un code avec cette structure, ça ne fonctionnait pas non plus.

if( has_term( array('musicians','jazz'), 'genre' ) ) {
    // do something
}

Comment puis-je résoudre ce problème ?

Solution n°1 trouvée

Lire cette solution ici : has_category() pour la catégorie parent

J’ai essayé une approche similaire et au lieu de marteler tous les termes, j’ai utilisé la solution ci-dessus pour tirer parti du terme de catégorie ou de l’une de ses sous-catégories :

add_filter('the_content', 'ssws_add_content');
function ssws_add_content($content) {

    $cat_id   = get_cat_ID('accommodations');
    $children = get_term_children($cat_id, 'category');

    $ssws_custom_text = '<h1>Accomodation</h1>';

    if (is_single() && (has_category($cat_id) || has_category($children))) {
        $content .= $ssws_custom_text;
    }

    return $content;

}

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *