web-dev-qa-db-fra.com

get_terms vs get_categories: est-ce important?

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?

7
Stephen S.

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.

8
mrwweb

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 () .

2
Brent Clark

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 );
1
FLOQ Design