フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【WordPress】category.phpでカテゴリ情報を取得する方法

category.php
WordPress
カテゴリ情報

こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。

WordPressのカテゴリページ用テンプレートはcategory.phpを使って表示します。
このcategory.phpで表示中のページのカテゴリ情報を取得する方法をご紹介します。

カテゴリIDを取得する

表示中のカテゴリページのカテゴリIDを取得する方法はこちら。

echo $cat;

category.phpでは$catの変数の中にカテゴリIDを保持しているので出力するだけです。

カテゴリ名を取得する

表示中のカテゴリページのカテゴリ名を取得する方法はこちら。

single_cat_title();

single_cat_title()関数は、使用した場所で直接カテゴリ名を出力します。

変数に格納する

single_cat_title()関数を使用して、一度変数に格納してから出力する方法はこちら。

$category_name = single_cat_title( '', false );
echo $category_name;

single_cat_title()関数の第2引数にfalseを渡すことでその場で出力せず変数に格納することが出来ます。

カテゴリURLを取得する

表示中のカテゴリページのURLを取得する方法はこちら。

$category_url  get_category_link($cat);
echo $category_url;

get_category_link()関数の引数にカテゴリIDを渡すことでそのカテゴリIDのカテゴリページのURLを取得することが出来ます。

カテゴリ情報を取得する

表示中のカテゴリページのカテゴリ情報を取得するにはget_category()関数、またはget_queried_object()関数を使用します。

get_category()を使用する

get_category()関数を使用して、表示中のカテゴリページのカテゴリ情報を取得する方法はこちら。

// 引数にはカテゴリIDを指定
$category_data = get_category( $cat );

中身を出力すると下のようなオブジェクト形式で情報を取得出来ます。

// echo "<pre>";
// var_dump( $category_data );
// echo "</pre>";

// object(WP_Term)#1116 (17) {
//   ["term_id"]=>
//   int(21)
//   ["name"]=>
//   string(30) "イベント、活動報告"
//   ["slug"]=>
//   string(5) "event"
//   ["term_group"]=>
//   int(0)
//   ["term_taxonomy_id"]=>
//   int(21)
//   ["taxonomy"]=>
//   string(8) "category"
//   ["description"]=>
//   string(0) ""
//   ["parent"]=>
//   int(0)
//   ["count"]=>
//   int(0)
//   ["filter"]=>
//   string(3) "raw"
//   ["term_order"]=>
//   string(1) "2"
//   ["cat_ID"]=>
//   int(21)
//   ["category_count"]=>
//   int(0)
//   ["category_description"]=>
//   string(0) ""
//   ["cat_name"]=>
//   string(30) "イベント、活動報告"
//   ["category_nicename"]=>
//   string(5) "event"
//   ["category_parent"]=>
//   int(0)
// }

この中からいくつか値を出力してみます。

// カテゴリID
echo $category_data->term_id;

// カテゴリ名
echo $category_data->name;

// スラッグ名
echo $category_data->slug;

他の値を同様に取得することが出来ます。

get_queried_object()を使用する

get_queried_object()関数を使用して、表示中のカテゴリページのカテゴリ情報を取得する方法はこちら。

$category_data = get_queried_object();

get_queried_object()関数の場合は引数を指定する必要はありません。

中身を出力すると下のようなオブジェクト形式で情報を取得出来ます。

// echo "<pre>";
// var_dump( $category_data );
// echo "</pre>";

// object(WP_Term)#867 (17) {
//   ["term_id"]=>
//   int(21)
//   ["name"]=>
//   string(30) "★イベント、活動報告"
//   ["slug"]=>
//   string(5) "event"
//   ["term_group"]=>
//   int(0)
//   ["term_taxonomy_id"]=>
//   int(21)
//   ["taxonomy"]=>
//   string(8) "category"
//   ["description"]=>
//   string(0) ""
//   ["parent"]=>
//   int(0)
//   ["count"]=>
//   int(0)
//   ["filter"]=>
//   string(3) "raw"
//   ["term_order"]=>
//   string(1) "2"
//   ["cat_ID"]=>
//   int(21)
//   ["category_count"]=>
//   int(0)
//   ["category_description"]=>
//   string(0) ""
//   ["cat_name"]=>
//   string(30) "★イベント、活動報告"
//   ["category_nicename"]=>
//   string(5) "event"
//   ["category_parent"]=>
//   int(0)
// }

get_queried_object()関数も、この中からいくつか値を出力してみます。

// カテゴリID
echo $category_data->term_id;

// カテゴリ名
echo $category_data->name;

// スラッグ名
echo $category_data->slug;

他の値を同様に取得することが出来ます。

まとめ

いかがでしたか?
category.phpでいろいろな値を取得する方法のご紹介でした。