開発ブログ

WWWクリエイターズが送る、Git、CSS、HTML、コマンドライン、Macの便利機能など、開発に関する役立ち情報発信します。気まぐれに更新。

WordPressで記事のカテゴリーを取得する関数のまとめ

最終更新:2016-12-13 by Joe

 

ワードプレスで記事のカテゴリを取得する関数はget_the_category()です。

記事のカテゴリを取得する関数get_the_category()

すこし詳しくみていきます。

ソースコードです。

 

ダイレクトに、get_the_terms()関数をコールしていることがわかります。

その後の_make_cat_compat()は、ワードプレスバージョン間の後方互換(Backward Compatibility)を保つための関数です。(公式リファレンス)。get_the_termから得られた値に、「cat_id」などの「カテゴリ」タクソノミー依存の参照名を追加するだけなので、あまり気にしなくて良いでしょう。

投稿のタームを取得する関数get_the_terms()

こちらも該当のソースコードをみてみます。

get_object_term_cache(), wp_cache_add()という一時キャッシュ(変数を、1リクエストの間だけ保持します)を利用していることがわかります。

つまり、同一のリクエストにおいては、何度get_the_term()を読んでも、クエリは発生せず、キャッシュを使いまわしてくれることがわかります。

投稿のカテゴリの取得に関するまとめ

get_the_category()は、get_the_termsとほぼ同値です。get_the_category()フィルターを意識するかどうかもありますが、個人的には、できるだけ一貫性の高いコーディングをするため、タクソノミーかによらず、いつも、get_the_terms()だけを使いたい気持ちになります。

また、get_the_xxxx() などの、ワードプレスループに依存した関数は、こう言った、filterや、キャッシュ機構などを含んでいる高級な処理を行っていることがわかりました。そのようなケースがあるかわかりませんが、できるだけローレベルなSQLクエリ結果に直接アクセスするには、wp_get_object_terms()関数を呼ぶことになりそうです。

「投稿のカテゴリを取得する関数」には、関数の抽象度によって、いくつかの選択肢があることがわかりました。どのレベルの関数を利用するかは、意識して使い分けることもあるかもしれませんね。