Paramètres

$post_id(int)optionnel

Id du poste. La valeur par défaut n'est pas l'id de la variable global $post.

Valeur par défaut : 0

$taxonomy(string|string[])optionnel

Slug de taxonomie ou un tableau de slugs pour lesquels récupérer les termes.

Valeur par défaut : 'post_tag'

$args(array)optionnel

Paramètres de requête des termes à récupérer.

Voir WP_Term_Query::__construct() pour les arguments supportés.

Valeur par défaut : array()

Description / Informations supplémentaires

La différence avec la fonction get_the_terms() est que cette fonction ne met pas ses résultats en cache, elle fera donc appel à la base de donnée à chaque fois.

Retourne

(array|WP_Error) Un tableau d'objets WP_Term en cas de réussite ou un tableau vide si aucun terme n'a été trouvé.

L'objet WP_Error si la taxonomie n'existe pas.

Déclaration et structure de la fonction wp_get_post_terms()

function wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array() ) {
    $post_id = (int) $post_id;

    $defaults = array( 'fields' => 'all' );
    $args     = wp_parse_args( $args, $defaults );

    $tags = wp_get_object_terms( $post_id, $taxonomy, $args );

    return $tags;
}
wp_get_object_terms()

Retourne les termes associés aux ids d'objets donnés, en fournissant les taxonomies correspondantes.

wp_parse_args()

Fusionne des arguments définis par l'utilisateur dans un tableau par défaut.

Où est utilisée la fonction wp_get_post_terms() dans le CMS WordPress

Exemples

Récupérer une liste de noms de terme avec une taxonomie donnée :
$term_list = wp_get_post_terms( $post->ID, 'ma_taxonomie', array( 'fields' => 'names' ) );
Récupérer une liste d'ids de terme avec une taxonomie donnée :
$term_list = wp_get_post_terms( $post->ID, 'ma_taxonomie', array( 'fields' => 'ids' ) );
Récupérer tous les slugs de catégorie d'un poste :
function post_taxonomy_slug_array( $tax_name = 'category' ){

    $terms = wp_get_post_terms( get_the_ID(), $tax_name, array( 'fields' => 'slugs' ) );

    if( ! empty( $terms ) && ! is_wp_error( $terms ) ){

        $term_array = array();

        foreach ( $terms as $term ) {
            $term_array[] = $term;
        }

        return $term_array;
    }

    return '';
}

Sources

Codex WordPress : wp_get_post_terms()

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

Retour