【WordPress】category.phpでカテゴリ情報を取得する方法
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
でいろいろな値を取得する方法のご紹介でした。