Description

Les termes à comparer peuvent être des id, des noms ou des slugs de termes.

Si aucun terme n'est donné, la fonction vérifiera si le poste a des termes.

Paramètres

$term

(string | int | array) (Optionnel) Le nom, slug ou id du terme ou un tableau de ceux-ci à comparer.

Valeur par défaut : ''

$taxonomy

(string) (Optionnel) Nom de la taxonomie.

Valeur par défaut : ''

$post

(int | WP_Post) (Optionnel) Poste à vérifier au lieu du poste actuel.

Valeur par défaut : null

Retourne

(int) True si le poste actuel a un ou plusieurs des termes donnés, false sinon.

Structure de la fonction has_term()

Définie dans le fichier wp-includes/category-template.php à la ligne 1514 :

function has_term( $term = '', $taxonomy = '', $post = null ) {
    $post = get_post( $post );

    if ( ! $post ) {
        return false;
    }

    $r = is_object_in_term( $post->ID, $taxonomy, $term );
    if ( is_wp_error( $r ) ) {
        return false;
    }

    return $r;
}

Fonctions utilisées par has_term()

is_object_in_term()

Détermine si l'objet donné est associé à un des termes donnés.

get_post()

Retourne les données d'un poste en passant l'id ou l'objet d'un poste.

is_wp_error()

Vérifie si la variable est une erreur WordPress.

Où trouver la fonction has_term() dans le CMS Wordpress

Exemples

Vérifier si le poste a des termes avec une taxonomie donnée :
if( has_term('', 'genre') ){
    // code ici...
}
if( has_term( 'jazz', 'genre' ) ) {
    // code ici...
}
Cange de classes CSS si le poste a le terme 'action' :
$hook_css_class = '';
global $post;

if (has_term( 'action', 'hook-type', $post->ID )) {
  $hook_css_class = "is-action-hook";
} else {
  $hook_css_class = "is-filter-hook";
};

Sources

Codex Wordpress : has_term()

Autres fonctions dans le même fichier : wp-includes/category-template.php

Retour