web-dev-qa-db-ja.com

get_termsとget_categories:関係ありますか?

私はワードプレスにはかなり慣れておらず、毎日新しいことに出会います。今日は私がget_termsに遭遇したとき、それがget_categoryと基本的に同じであることに気づいた時です。

どちらかを使用する特別な理由はありますか?足りないものはありますか。

7
Stephen S.

WordPressに飛び込むと、WordPressには多くのラッパー関数があることがわかります。たとえば、add_theme_pageは単にadd_submenu_pageのラッパーです。これは確かに唯一の例ではありません(実際、add_submenu_page自体にはたくさんのラッパーがあります)。 get_categories() のソースを見れば、それもget_terms()のラッパーであることがわかります(私は自分自身でそれを学んだので、ありがとうございます)。

分類学に関連する機能が最も複雑なものの一部であることがわかりました。それらの多くは、非常によく似た引数を取り、ほとんど違いはありませんが似たようなものを返します。この場合、get_terms()にはget_category()にはないname__likeパラメータがあります。おそらく他にも小さな違いがあります。

個人的な好みとして、私はできる限りget_terms()を使うようにしています。場合によっては、add_theme_pageが推奨される機能です(おそらくWordPressがテーマページに変更を加えてその機能を機能させることができるようになるでしょう)。他に何もないが、親しみやすさは私がそれをより早くするのに役立ちます。しかし、wp_list_categories()のようなHTMLリストを返す関数の中には便利なものもあります。

8
mrwweb

get_terms()get_categories()の最も重要な(そしてあまり明白ではない)違いの1つは、get_categories()がラッパー関数であることですget_terms( 'category')の場合。つまり、cannotget_categories()でカスタム分類を取得し、get_terms()を使用する必要があります代わりに。

2
Brent Clark

get_categoriesでカスタム分類法を問い合わせることは可能です

例:

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