Description

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.

Paramètres

$term

(int | WP_Term | object) (Requis) Si $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) (Optionnel) Le nom de la taxonomie dont $term fait parti.

Valeur par défaut : ''

$output

(string) (Optionnel) Le 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) (Optionnel) De quelle façon nettoyer les champs du terme.

Valeur par défaut : 'raw'

Retourne

(array | WP_Error | null) Instance ou tableau. WP_Error si la taxonomie n'existe pas. null si échec.

Structure de la fonction get_term()

Définie dans le fichier wp-includes/taxonomy.php à la ligne 855 :

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;

    /**
     * Filters a taxonomy term object.
     *
     * @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 filter name, `$taxonomy`, refers
     * to the slug of the term's 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_{$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.
    $_term->filter( $filter );

    if ( ARRAY_A === $output ) {
        return $_term->to_array();
    } elseif ( ARRAY_N === $output ) {
        return array_values( $_term->to_array() );
    }

    return $_term;
}

Fonctions et Hooks utilisés par get_term()

__()

Retourne la traduction d'un texte.

sanitize_term()

Nettoie tous les champs d'un terme.

get_term

Filtre un terme d'une taxonomy.

get_{$taxonomy}

Filtre une taxonomy 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.

Où trouver 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

Retour