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

$args(array)optionnel

Paramè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()

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;
}
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

L'exemple ci-dessous montre comment récupérer un tableaux d'ids de catégorie, puis des informations supplémentaires pour chaque catégorie :
$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 );
}
L'exemple ci-dessous remplace la fonction get_category() :
$categories = wp_get_post_categories( $post_id, array( 'fields' => 'all' ) );
Récupérer une liste de noms de catégorie par ordre décroissant :
$categories = wp_get_post_categories( $post_id, array( 'fields' => 'names', 'order'=> 'DESC' ) );
Récupérer une liste de catégories en excluant un ou plusieurs termes :
// 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

Retour