get_terms vs. get_categories: Ist das wichtig?

7

Ich bin ziemlich neu in WordPress und stoße jeden Tag auf neue Dinge - eines war heute, als ich auf etwas stieß get_termsund bemerkte, dass es im Grunde dasselbe war wie get_category.

Gibt es einen bestimmten Grund, den einen oder anderen zu benutzen? Fehlt mir etwas?

Stephen S.
quelle

Antworten:

8

Wenn Sie in WordPress eintauchen, werden Sie feststellen, dass WordPress viele Wrapper-Funktionen hat. Zum Beispiel gibt add_theme_pagees nur einen Wrapper von add_submenu_page. Dies ist sicherlich nicht das einzige Beispiel ( add_submenu_pageselbst hat tatsächlich eine Reihe von Wrappern). Wenn Sie sich die Quelleget_categories() ansehen , werden Sie feststellen, dass es sich auch um einen Wrapper handelt get_terms()(das habe ich gerade selbst gelernt, also danke!).

Ich finde, dass die taxonomiebezogenen Funktionen zu den kompliziertesten gehören. Viele von ihnen nehmen sehr ähnliche Argumente an und geben ähnliche Dinge mit kleinen Unterschieden zurück. In diesem Fall get_terms()hat ein name__likeParameter, der get_category()dies nicht tut. Es gibt wahrscheinlich auch andere kleine Unterschiede.

Als persönliche Präferenz versuche ich get_terms()so viel wie möglich zu verwenden. In einigen Fällen, wie dies add_theme_pagedie empfohlene Funktion ist (vermutlich, damit WordPress Änderungen an der Themenseite vornehmen und diese Funktion beibehalten kann), aber in anderen Fällen wie diesem denke ich, dass dies keinen großen Unterschied macht. Wenn nichts anderes, hilft mir die Vertrautheit, schneller mehr damit zu machen. Einige der Funktionen, die HTML-Listen wie zurückgeben, wp_list_categories()können jedoch manchmal nützlich sein.

mrwweb
quelle
3

Einer der wichtigsten (und nicht sehr offensichtlichen) Unterschiede zwischen get_terms () und get_categories () ist, dass get_categories () eine Wrapper-Funktion für get_terms ('category') ist . Dies bedeutet, dass Sie mit get_categories () keine benutzerdefinierten Taxonomien abrufen können und stattdessen get_terms () verwenden müssen.

Brent Clark
quelle
Doh, das mag nicht wahr sein. Bitte ignorieren Sie dies, bis ich die Gelegenheit bekomme, ein vorheriges Problem zu überprüfen, auf das ich gestoßen bin. Entschuldigen Sie.
Brent Clark
1
Haben Sie die akzeptierte Antwort gesehen, die dies bereits erklärt?
Chris_O
@BrentClark Hast du jemals herausgefunden, ob das stimmt? Es ist eine hilfreichere Antwort für mich.
Django Reinhardt
1

Es ist möglich, benutzerdefinierte Taxonomie mit abzufragen get_categories

Beispiel:

// Taxonomy query
$venue_args = array(
  'child_of'   => $venue_id,
  'taxonomy'   => 'wpmf-category',
  'hide_empty' => false
);
$venue_cats = get_categories( $venue_args );
FLOQ Design
quelle