Je suis assez nouveau sur wordpress et je découvre de nouvelles choses chaque jour - l'un d'eux aujourd'hui, lorsque je suis tombé sur get_terms
et a remarqué que c'était fondamentalement la même chose que get_category
.
Une raison particulière d'utiliser l'un ou l'autre? Y a-t-il quelque chose qui me manque?
En plongeant dans WordPress, vous constaterez que WordPress possède de nombreuses fonctions d'encapsulation. Par exemple, il y a add_theme_page
qui n'est qu'un wrapper de add_submenu_page
. Ce n'est certainement pas le seul exemple (add_submenu_page
lui-même a un tas de wrappers, en fait). Si vous regardez la source de get_categories()
, vous verrez que c'est aussi un wrapper pour get_terms()
(je viens de l'apprendre moi-même, alors merci!).
Je trouve que les fonctions liées à la taxonomie sont parmi les plus compliquées. Beaucoup prennent des arguments très similaires et renvoient des choses similaires avec de petites différences. Dans ce cas, get_terms()
a un paramètre name__like
que get_category()
n'a pas. Il y a probablement d'autres petites différences aussi.
Personnellement, j'essaie d'utiliser get_terms()
autant que possible. Dans certains cas, comme add_theme_page
, c'est la fonction recommandée (vraisemblablement pour que WordPress puisse modifier la page de thème et la garder active), mais dans d'autres cas comme celui-ci, je ne pense pas que cela fasse une grande différence. Si rien d'autre, la familiarité m'aide à faire plus avec elle plus rapidement. Cependant, certaines des fonctions qui renvoient des listes HTML telles que wp_list_categories()
peuvent parfois être utiles.
Une des différences les plus importantes (et pas très évidentes) entre get_terms () et get_categories () est que get_categories () est une fonction wrapper pour get_terms ('category') . Cela signifie que vous ne pouvez pas obtenir des taxonomies personnalisées avec get_categories () et que vous devez utiliser get_terms () .
Il est possible d'interroger la taxonomie personnalisée avec get_categories
exemple:
// Taxonomy query
$venue_args = array(
'child_of' => $venue_id,
'taxonomy' => 'wpmf-category',
'hide_empty' => false
);
$venue_cats = get_categories( $venue_args );