1. HOME
  2. 開発・ブログ運営
  3. WordPress
  4. WordPress のテンプレートファイルで、カテゴリ情報(カテゴリ名とかカテゴリIDとか)を取得する方法
2012年10月16日
WordPress のサイドバーに呟きを表示させる Twitt ...
2012年04月28日
プラグインを自作して「最近の投稿」ウィジェットにサムネイル画像 ...
2016年08月01日
Docker for Mac を使って WordPress の ...
2015年04月21日
WordPress でモバイルフレンドリー対応(Wptouch ...
2012年04月22日
WordPress3 に関連記事を表示するプラグインYet A ...
2012年07月13日
TwitterTools プラグインのダイジェスト投稿をカスタ ...

WordPress のテンプレートファイルで、カテゴリ情報(カテゴリ名とかカテゴリIDとか)を取得する方法

WordPress のテンプレートを修正しているときに、カテゴリ名とかカテゴリスラッグとか、カテゴリの情報を取得したい場面が多々ありますが、いつも忘れてしまうのでその覚書。

カテゴリ情報は、

で、取得できました。$cat_info には、オブジェクトが返り値として返ってくるので、オブジェクトからカテゴリ情報にアクセスできた。

返ってくるオブジェクトは、

なので、例えば、

こんな感じでカテゴリ情報にアクセスできます。ちなみに、返り値はオブジェクトなので「->」でアクセス。配列だと思って「 $cat_info[‘name’] 」とかで値がとれなくて若干はまった。

なんとも初歩的なミス・・。

参考:Function Reference/get query var « WordPress Codex(英語)
参考:関数リファレンス/get category – WordPress Codex 日本語版

なお、single.php では、このやり方でカテゴリ情報を取得できない・・。(なんか single.php はカテゴリ(タクソノミ)に属してないとかなんとか・・)

なので、single.php でカテゴリ情報にアクセスする場合は、get_the_category() を使って、

で、取得できました。

<2013/03/16 追記>
Toshiさんより、ご指摘を頂きました。Thanx!!

「で、取得できました。」とか言いながら、上のソースでは取得できません(;_;)。

cat_IDとcat_name以外はすべて、

ではないでしょうか。

ご指摘の通りでございます。m(__)m

なので、上記のソースは、

が正解です。Toshiさん、ありがとうございました。

<2013/03/16 追記ここまで>

参考:テンプレートタグ/get the category – WordPress Codex 日本語版
参考:single.php(個別ページ)でカテゴリ名、カテゴリスラッグを取得する。 – エンタナブログ

ようは、

get_the_category() は single.php でも使えるけど、取得できる情報が少ない。
get_category() は 取得できる情報は多いけど、single.php じゃ使えない。

なので、基本的には、get_the_category() を使いつつ、get_category() の方が、取得できる情報が多いので(例えば、カスタムタクソノミーにも対応してる)ので、get_the_category() では間に合わないときは、get_category() を使えば良いのかな。

だったら初めから、get_terms() 一本の方がわかりやすい??

WordPress のドキュメントでは、関数群をテンプレートタグとか条件分岐タグとかに分類してるようだけど、普段その分類を意識したことがありません。

それを意識すると、あーこれはテンプレートタグだから、この時はこれを使うのね、とか、そんな事なのかもしれません。

参考:テンプレートタグ – WordPress Codex 日本語版
参考:条件分岐タグ – WordPress Codex 日本語版

カテゴリ名とか基本的な情報だけであれば、single_cat_title() だけで出力できたります。だけど、これもカテゴリページ以外では無効。

うーん。なんだかな。

同じことをやりたいのにページや場所によって使う関数がバラバラ。しかも関数名を見ただけでは使い分けが良く分からない。

これは単純に覚えるしかしょうがないのかな。

参考:テンプレートタグ/single cat title – WordPress Codex 日本語版

まぁなんだか良くわかりませんがこんなところで。

でわでわ。








「WordPress のテンプレートファイルで、カテゴリ情報(カテゴリ名とかカテゴリIDとか)を取得する方法」に頂いたコメント & トラックバック

  1. Toshi より:

    初めまして。自分もこれ悩んでいたので非常に助かりました。ただ、取得する場合のソースですが、cat_IDとcat_name以外はすべて

    $cat->category_nicename
    $cat->category_description
    $cat->category_parent
    $cat->category_count

    ではないでしょうか。名前は取得できたけどスラッグが取得できなかったので、あれ? と思って気づきました。差し出がましいようですが気づいたのでコメントさせていただきました。

    • (ひ) より:

      Toshiさん、こんにちわ。
      今さらですいません。ずーっと放置していて・・。

      差し出がましいなんてとんでもない。ご指摘ありがとうございます。m(_ _)m
      仰るとおりですね。これからもビシバシ突っ込んでやってください :-)

この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.