[WordPress] get_the_category(); を使ってカテゴリ情報を取得する方法

WordPress関連の記事

この記事の趣旨:
「 WordPress のカテゴリー情報を取得、内容を知ってみる」

本日はものすごく基礎的な内容です。

先日公開した当サイトの以前の記事でも少し登場しましたが、Wordpressにおいて、カテゴリー情報を取得する汎用的な方法をこちらの記事でご紹介しようと思います。

get_the_category(); でカテゴリー情報を取得してみる

get_the_category();

上記のテンプレートタグ get_the_category(); を使用すると、WordPressの色々なカテゴリー情報を取得する事ができます。まずは上記テンプレートタグを使用すると、どんな情報が返ってくるか見てみましょう。

array(1) {
  [0]=>
  object(WP_Term)#3752 (16) {
    ["term_id"]=>
    int(15)
    ["name"]=>
    string(15) "WordPress関連"
    ["slug"]=>
    string(7) "wp-tips"
    ["term_group"]=>
    int(0)
    ["term_taxonomy_id"]=>
    int(15)
    ["taxonomy"]=>
    string(8) "category"
    ["description"]=>
    string(0) ""
    ["parent"]=>
    int(0)
    ["count"]=>
    int(3)
    ["filter"]=>
    string(3) "raw"
    ["cat_ID"]=>
    int(15)
    ["category_count"]=>
    int(3)
    ["category_description"]=>
    string(0) ""
    ["cat_name"]=>
    string(15) "WordPress関連"
    ["category_nicename"]=>
    string(7) "wp-tips"
    ["category_parent"]=>
    int(0)
  }
}

上記は、当サイトの検証環境にて
get_the_category();
を使用して、カテゴリ情報の内容を試しに出力してみた結果です。

この get_the_category(); は、特にパラメータを渡さない場合、
「現在表示している投稿が所属するカテゴリーの各情報」を取得してくれます。
では取得した情報の内訳について、早速みてみましょう。

[“term_id”]…カテゴリーID
[“name”]…カテゴリー名
[“slug”]…カテゴリーのスラッグ
[“term_group”]…カテゴリーのグループ
[“term_taxonomy_id”]…カテゴリーのタクソノミーID
[“taxonomy”]…タクソノミー名が入ります。デフォルトの「投稿」が所属する「タクソノミー名」ですので、 ‘category’ が入っています。
[“description”]…カテゴリーの説明が入る。なければ何も入りません。
[“parent”]…親カテゴリーのID
[“count”]…カテゴリーに登録されている投稿の数
[“filter”]…大抵の場合、デフォルト値rawが入る。
[“cat_ID”]…カテゴリーID。[“term_id”]と同じ値が入る。
[“category_count”]…カテゴリーに登録されている投稿の数。[“count”]と同じ値が入る。
[“category_description”]…カテゴリーの説明。[“description”]と同じ値が入る。
[“cat_name”]…カテゴリー名。[“name”]と同じ値が入る。
[category_nicename]…カテゴリースラッグ名。[“slug”]と同じ値が入る。
[“category_parent”]…親カテゴリーのID。[“slug”]と同じ値が入る。

上記の様になっており、カテゴリーに関する情報が取得できているのがわかります。
冒頭でもご紹介した、以前書いたJSON-LDの記事の例では、
この get_the_category(); を使って、

$catarg = get_the_category();
$catname = $catarg[0]->name;
$catslug = $catarg[0]->slug;

この様に、
カテゴリー名とスラッグの情報を取り出して、パンくずリストの各階層に対応する情報として代入して使用していました。

カスタムタクソノミー(カスタム分類)の場合はどうするのか

さて、この get_the_category(); ですが、
実は
WordPressデフォルトの「カテゴリー」用です。もし自作した他のカテゴリー(カスタムタクソノミー)に対して同様に情報を取得したい場合は、
get_the_terms();
を使用することが推奨されています。補足情報として覚えておくと、色々なケースに対応できて良いかと思います。

この記事のまとめ

本日はものすごく基礎的な内容でしたが、WordPressカスタマイズの基本的な部分に立ち返る意味も含め、
「WordPressのカテゴリー情報を取得する方法」について、あえてご紹介しました。
主に、カテゴリーに関する情報を扱う何らかの機能を作る時や、
そもそもWordPressがどんなカテゴリ情報を持っているかを知る事で、
デバッグの際などにも役立つと思います。

記事の途中で出てきた JSON-LD を記述する際に利用した例の様に、

基本形:

<?php
$catarg = get_the_category();
$catname = $catarg[0]->name;
$catslug = $catarg[0]->slug;
?>

代入する際の例:

<?php
echo $catname;
echo $catslug;
?>

上記の簡単な例を覚えておけば、WordPressでカテゴリ情報を表示したい様々なケースで役にたつと思います。

当サイトは、今後もWordPressに関する記事を更新していきます。

※本記事は随時、加筆・修正を行っていく予定です。