Tester le terme d’une custom taxonomy de post WordPress

wordpress has_term

Avec WordPress, il est facile de définir des conditions en fonction de l’endroit où l’on se trouve. Par exemple, je voudrais qu’un script se charge uniquement sur la page d’accueil : je vais utiliser is_front_page(); pour poser ma condition. Il existe bien d’autres marqueurs conditionnels : is_home(); is_category(); … La liste complète est sur le Codex 🙂

Hors, dans le cadre du site de l’atelier je veux utiliser le player videoJS pour lire les vidéos. Mais pour éviter de charger les scripts et les styles sur l’ensemble des pages, je veux uniquement cibler les pages comportant des vidéos. Un marqueur conditionnel sera donc bien utile !

Récapitulons :

  • mon portfolio est un custom post type
  • il a une custom taxonomie : « type-creation »
  • cette taxonomie a 3 termes : « graphisme », « web-design » et « motion-design »

Je veux donc tester si mon post est bien rangé dans le terme « motion-design », et il y a un marqueur pour ça ! : has_term(); Il lui faut deux paramètres : le premier; le terme que l’on veut tester, le second; la taxonomie du terme en question :

has_term( 'mon-terme' , 'ma-taxonomie' );

Je vais donc éditer mon fichier functions.php et intégrer à ma fonction d’ajout de scripts :

if ( has_term( 'motion-design' , 'type-creation' ) ) {
   wp_enqueue_script(
     'videojs',
     get_template_directory_uri() . '/video-js/video.js',
     false,
     '4.3.0',
     true
   );
}

Le script du player vidéo ne sera chargé que sur les pages single « motion-design » et pas sur le reste du site 🙂

On en discute ?

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