web-dev-qa-db-fra.com

get_terms des taxonomies enregistrées ne fonctionnant pas

Dans functions.php je peux var_dump() taxonomies comme:

$taxonomies=get_taxonomies('','names');
echo '<pre>';
var_dump($taxonomies);

qui me donne:

array(7) {
  ["category"]=>
  string(8) "category"
  ["post_tag"]=>
  string(8) "post_tag"
  ["nav_menu"]=>
  string(8) "nav_menu"
  ["link_category"]=>
  string(13) "link_category"
  ["post_format"]=>
  string(11) "post_format"
  ["project"]=>
  string(7) "project"
  ["team"]=>
  string(4) "team"
}

Maintenant, j'aimerais obtenir toutes les "catégories" de mon "projet" de taxonomie enregistrée

J'ai essayé avec get_categories () et get_terms (), renvoyant tous deux un tableau vide.

$taxonomies = array(
    'project'
);

$args = array(
    'orderby'           => 'name',
    'order'             => 'ASC',
    'hide_empty'        => true,
    'exclude'           => array(),
    'exclude_tree'      => array(),
    'include'           => array(),
    'number'            => '',
    'fields'            => 'all',
    'slug'              => '',
    'parent'            => '',
    'hierarchical'      => true,
    'child_of'          => 0,
    'get'               => '',
    'name__like'        => '',
    'description__like' => '',
    'pad_counts'        => false,
    'offset'            => '',
    'search'            => '',
    'cache_domain'      => 'core'
);

$terms = get_terms($taxonomies, $args);
var_dump($terms);

donnant

array(0) {
}

Qu'est-ce que je fais mal?

1
caramba

Je voudrais souligner quelques éléments à l’aide de get_terms

  • Pas besoin de mettre une valeur dans un tableau, vous pouvez simplement ajouter la valeur telle quelle à la variable

  • Pour que vos termes soient restitués, vous devez réellement leur attribuer des publications. Par défaut, les termes vides sont masqués. Il en va de même pour get_categories . Si vous devez également afficher des termes vides, définissez simplement le paramètre hide_empty sur false.

  • Vous n'avez pas besoin d'appeler les valeurs par défaut. Si vous n'allez pas modifier la valeur d'un paramètre, ne l'ajoutez pas à vos arguments. Ajoutez simplement les paramètres que vous allez modifier

Voici un bon exemple

$args = array(
    'hide_empty' => false, 
);

$terms = get_terms('project', $args);
var_dump($terms);

Ici, nous obtenons tous les termes, y compris les vides, triés par le nom par défaut de la taxonomie project

3
Pieter Goosen