get_term( int|WP_Term|object $term, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' )
Retourne toutes les données d'un terme en donnant son ID.
Paramètres
$term(int|WP_Term|object)requisSi $term est un entier, les données du terme seront rapportées de la base de donnée ou du cache si disponible. Si $term est un objet stdClass (comme le résultat d'une requête en base de donnée), les filtres y seront appliqués.
$taxonomy(string)optionnelLe nom de la taxonomie dont $term fait parti.
Valeur par défaut : ''
$output(string)optionnelLe type voulu de la sortie.
- OBJECT pour l'objet WP_Term
- ARRAY_A pour un tableau associatif
- ARRAY_N pour un tableau numérique
Valeur par défaut : OBJECT
$filter(string)optionnelDe quelle façon nettoyer les champs du terme.
Valeur par défaut : 'raw'
Description / Informations supplémentaires
L'un des usages de la fonction get_term() est d'appliquer 2 filtres à l'objet du terme. Il est possible d'obtenir celui-ci avant qu'il ne soit filtré.
L'ID du terme recherché doit faire partie de la taxonomie renseignée.
Le filtre get_term est spécifiquement utilisé pour le terme et le filtre term_{$taxonomy} pour la taxonomie.
Retourne
(array|WP_Error|null) Instance ou tableau. WP_Error si la taxonomie n'existe pas. null si échec.
Déclaration et structure de la fonction get_term()
get_term() est déclarée dans le fichier wp-includes/taxonomy.php à la ligne 977 :
function get_term( $term, $taxonomy = '', $output = OBJECT, $filter = 'raw' ) {
if ( empty( $term ) ) {
return new WP_Error( 'invalid_term', __( 'Empty Term.' ) );
}
if ( $taxonomy && ! taxonomy_exists( $taxonomy ) ) {
return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy.' ) );
}
if ( $term instanceof WP_Term ) {
$_term = $term;
} elseif ( is_object( $term ) ) {
if ( empty( $term->filter ) || 'raw' === $term->filter ) {
$_term = sanitize_term( $term, $taxonomy, 'raw' );
$_term = new WP_Term( $_term );
} else {
$_term = WP_Term::get_instance( $term->term_id );
}
} else {
$_term = WP_Term::get_instance( $term, $taxonomy );
}
if ( is_wp_error( $_term ) ) {
return $_term;
} elseif ( ! $_term ) {
return null;
}
// Ensure for filters that this is not empty.
$taxonomy = $_term->taxonomy;
$old_term = $_term;
/**
* Filters a taxonomy term object.
*
* The {@see 'get_$taxonomy'} hook is also available for targeting a specific
* taxonomy.
*
* @since 2.3.0
* @since 4.4.0 `$_term` is now a `WP_Term` object.
*
* @param WP_Term $_term Term object.
* @param string $taxonomy The taxonomy slug.
*/
$_term = apply_filters( 'get_term', $_term, $taxonomy );
/**
* Filters a taxonomy term object.
*
* The dynamic portion of the hook name, `$taxonomy`, refers
* to the slug of the term's taxonomy.
*
* Possible hook names include:
*
* - `get_category`
* - `get_post_tag`
*
* @since 2.3.0
* @since 4.4.0 `$_term` is now a `WP_Term` object.
*
* @param WP_Term $_term Term object.
* @param string $taxonomy The taxonomy slug.
*/
$_term = apply_filters( "get_{$taxonomy}", $_term, $taxonomy );
// Bail if a filter callback has changed the type of the `$_term` object.
if ( ! ( $_term instanceof WP_Term ) ) {
return $_term;
}
// Sanitize term, according to the specified filter.
if ( $_term !== $old_term || $_term->filter !== $filter ) {
$_term->filter( $filter );
}
if ( ARRAY_A === $output ) {
return $_term->to_array();
} elseif ( ARRAY_N === $output ) {
return array_values( $_term->to_array() );
}
return $_term;
}
Fonctions utilisées par get_term()
__()Retourne la traduction d'un texte.
sanitize_term()Nettoie tous les champs d'un terme.
taxonomy_exists()Détermine si un nom de taxonomie existe.
apply_filters()Appel les fonctions qui ont été attaché à un filtre (hook).
is_wp_error()Vérifie si la variable est une erreur WordPress.
Hooks utilisés par get_term()
get_termFiltre un terme d'une taxonomy.
get_taxonomyFiltre une taxonomy d'un terme.
Où est utilisée la fonction get_term()
dans le CMS WordPress
Exemple
$term = get_term( $term_id, $taxonomy );
$slug = $term->slug;
$name = $term->name;
Sources
Codex WordPress : get_term()
Autres fonctions dans le même fichier : wp-includes/taxonomy.php