get_the_category()から子カテゴリーを取得する
get_the_category()
からカテゴリーを取得するにはforeach文で抜き出すことができます。次のコードは子カテゴリーまで抜き出し、各カテゴリーページのリンクと各カテゴリー名を抜き出したコードになります。
サンプルコード
$categories = get_the_category();
foreach($categories as $cat){
echo '<li><a href="' . get_category_link($cat->term_id) . '">' . $cat->name . '</a></li>';
}
get_the_category() – 配列展開
get_the_category()
の中は下記のようになっています。多次元配列の構造は親カテゴリーから順に[0] > [1] > [2]
となります。
array(2) {
[0]=>
object(WP_Term)#4693 (16) {
["term_id"]=>
int(150)
["name"]=>
string(8) "Parent"
["slug"]=>
string(8) "parent"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(150)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(0)
["count"]=>
int(7)
["filter"]=>
string(3) "raw"
["cat_ID"]=>
int(150)
["category_count"]=>
int(7)
["category_description"]=>
string(0) ""
["cat_name"]=>
string(8) "Parent"
["category_nicename"]=>
string(8) "parent"
["category_parent"]=>
int(0)
}
[1]=>
object(WP_Term)#4781 (16) {
["term_id"]=>
int(162)
["name"]=>
string(5) "Child"
["slug"]=>
string(5) "child"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(162)
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
int(150)
["count"]=>
int(5)
["filter"]=>
string(3) "raw"
["cat_ID"]=>
int(162)
["category_count"]=>
int(5)
["category_description"]=>
string(0) ""
["cat_name"]=>
string(5) "Child"
["category_nicename"]=>
string(5) "child"
["category_parent"]=>
int(150)
}
}
カテゴリーのリンクを取得したいのであればget_category_link()
とterm_id
が必要になります。get_categroy_link()
に値(カテゴリーID)が入れることでURLを返してくれます。上記の例だとget_category_link(150)
となるのでParentのカテゴリーアーカイブページのリンク(URL)を取得できます。
ただこのタグは現在の投稿が属するカテゴリーを表示させる機能がメインなので、get_the_category()
タグを使う場合single.php
で使うほうが相性がいいかなと思いました。get_the_category()から子カテゴリーを取得する