wp_get_post_terms( int $post_id = 0, string|string[] $taxonomy = 'post_tag', array $args = array() )
Retourne les termes d'un poste.
Paramètres
$post_id
(int)optionnelId 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[])optionnelSlug de taxonomie ou un tableau de slugs pour lesquels récupérer les termes.
Valeur par défaut : 'post_tag'
$args
(array)optionnelParamè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()
wp_get_post_terms()
est déclarée dans le fichier wp-includes/post.php
à la ligne 4081 :
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;
}
Fonctions utilisées par wp_get_post_terms()
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
$term_list = wp_get_post_terms( $post->ID, 'ma_taxonomie', array( 'fields' => 'names' ) );
$term_list = wp_get_post_terms( $post->ID, 'ma_taxonomie', array( 'fields' => 'ids' ) );
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