wp_get_post_categories( int $post_id = 0, array $args = array() )
Retourne la liste des catégories pour 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
$args(array)optionnelParamètres de requête des catégories à récupérer.
Voir
WP_Term_Query::__construct()pour les arguments supportés.Valeur par défaut : array()
Description / Informations supplémentaires
Les résultats de cette fonction ne sont pas mis en cache. Pour plus de performances utilisez une fonction comme get_the_category() pour recevoir les catégories attachées à un poste.
Retourne
(array|WP_Error)
- Par défaut, un tableau d'ids de catégorie.
- Un tableau d'objets WP_Term si l'argument 'fields' passé via $args vaut 'all' ou 'all_with_object_id'.
- Un tableau de noms de catégorie si 'fields' vaut 'names'.
- L'objet WP_Error si la taxonomie 'category' n'existe pas.
Déclaration et structure de la fonction wp_get_post_categories()
wp_get_post_categories() est déclarée dans le fichier wp-includes/post.php à la ligne 4034 :
function wp_get_post_categories( $post_id = 0, $args = array() ) {
$post_id = (int) $post_id;
$defaults = array( 'fields' => 'ids' );
$args = wp_parse_args( $args, $defaults );
$cats = wp_get_object_terms( $post_id, 'category', $args );
return $cats;
}
Fonctions utilisées par wp_get_post_categories()
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_categories()
dans le CMS WordPress
Exemples
$categories = wp_get_post_categories( $post_id );
$cats = array();
foreach($categories as $c){
$cat = get_category( $c );
$cats[] = array( 'name' => $cat->name, 'slug' => $cat->slug );
}
get_category() :$categories = wp_get_post_categories( $post_id, array( 'fields' => 'all' ) );
$categories = wp_get_post_categories( $post_id, array( 'fields' => 'names', 'order'=> 'DESC' ) );
// ajouter la clé 'exclude' et des ids de termes pour sa valeur. Soit avec un tableau d'ids,
// soit avec une chaîne composée d'ids séparés par une virgule ou un espace
$categories = wp_get_post_categories( $post_id, array( 'fields' => 'names', 'exclude' => '1,7' ) );
Sources
Codex WordPress : wp_get_post_categories()
Autres fonctions dans le même fichier : wp-includes/post.php