wordpressでカテゴリーを取得するとき、デフォルトの投稿とカスタム投稿タイプとで取得の仕方が違うので、いろいろあるのをまとめてみました。
通常の投稿・カスタム投稿タイプ どちらでも可
通常の取得の仕方
<?php $terms = get_the_terms($post->ID, 'feature_category');//通常タイプなら'category'。 //カテゴリー名「例えば」 $term_name = $terms[0]->name; //カテゴリースラッグ「eg」 $term_slug = $terms[0]->slug; //カテゴリーID「3」 $term_id = $terms[0]->term_id; ?>
get_the_terms()の返り値は下記のような配列です。
<?php print_r($terms); ?> Array( [0] => WP_Term Object( [term_id] => 3 [name] => 例えば [slug] => eg [term_group] => 0 [term_taxonomy_id] => 3 [taxonomy] => custom_category [description] => [parent] => 0 [count] => 1 [filter] => raw [object_id] => 31 ) )
カテゴリー名を取得(カテゴリー・アーカイブ)
<?php $cat_name = single_cat_title('',false); //カテゴリー名を取得 echo $cat_name; ?>
タクソノミー一覧を作成
<?php $cat = get_the_taxonomies($post->ID); foreach ($cat as $key => $value) { $cat_name = $key; } //タクソノミー分類名を取得 echo $cat_name; $terms_cat = get_the_terms(get_the_ID(), $cat_name); foreach ( $terms_cat as $term ) { $category_id = $term->term_id; $category_link = get_category_link($category_id); } ?>
通常の投稿のみ
カテゴリー情報取得の仕方
<?php $cat = get_the_category(); //カテゴリー名「ノンカテ」 $cat_name = $cat[0]->name; //カテゴリースラッグ「uncategorized」 $cat_slug = $cat[0]->slug; //カテゴリーID「1」 $cat_id = $cat[0]->cat_ID; ?>
他は下記のキーワードで取得することができる。
<?php print_r($terms); ?> Array( [0] => WP_Term Object ( [term_id] => 1 [name] => ノンカテ [slug] => uncategorized [term_group] => 0 [term_taxonomy_id] => 1 [taxonomy] => category [description] => [parent] => 0 [count] => 1 [filter] => raw [object_id] => 1 [cat_ID] => 1 [category_count] => 1 [category_description] => [cat_name] => ノンカテ [category_nicename] => uncategorized [category_parent] => 0 ) )
カテゴリー名を取得(カテゴリー・アーカイブ)
<?php $cat_name = single_cat_title('',false); //カテゴリ-名を取得 echo $cat_name $categoryid = get_cat_ID($cat_name); //カテゴリ-IDを取得 echo $cat_id; ?>
以上、タクソノミー分類名が取得できれば、ナビゲーションを作るときでも、テンプレート内に書くことができて、管理がしやくすなると思います。ぜひ活用したいものです。