
カテゴリーやターム(カスタム投稿タイプ記事のカテゴリ)の取得方法は、詳細ページ、カスタムタクソノミー(カテゴリー)ページ、それぞれに異なります。
そしてたまに、どっちだったか、割とWordPressに慣れ親しんでいる私自身もちょっと忘れてしまったりします。。。
そこで今回は、詳細ページやカスタムタクソノミー(カテゴリー)ページにおけるターム(カテゴリー)の取得方法について、おもに私自身のために今さらですがまとめておきたいと思います。
同じことで悩むみなさんも参考としてご活用ください。
$cat_id = (int)get_query_var('cat'); //カテゴリーID
$the_cat = get_category($cat_id);
$cat_name = $the_cat->name; //カテゴリー名
$cat_slug = $the_cat->slug; //カテゴリースラッグ
//ついでにタグ
$tag_id = (int)get_query_var('tag_id'); //タグID
$the_tag = get_tag($tag_id);
$tag_name = $the_tag->name; //タグ名
$tag_slug = $the_tag->slug; //タグスラッグ
if(is_category()){
while ( $the_cat->parent ){
$the_cat = get_category( $the_cat->parent );
}
$parent_cat_slug = $the_cat->slug; //最上位親カテゴリースラッグ
$parent_cat_name = $the_cat->name; //最上位親カテゴリー名
$parent_cat_id = $the_cat->term_id; //最上位カテゴリーID
}
$the_cat = get_the_category(); $cat_name = $the_cat[0]->name; //カテゴリー名 $cat_slug = $the_cat[0]->slug; //カテゴリースラッグ $cat_id = (int)$the_cat[0]->cat_ID; //カテゴリーID //※ 複数カテゴリに属する記事などで、所属カテゴリーを全部取りたければ、$the_catをfor文やforeach文で回せばOK
$the_cat = get_the_category();
$cat_name = $the_cat[0]->name; //カテゴリー名
$cat_slug = $the_cat[0]->slug; //カテゴリースラッグ
$cat_id = (int)$the_cat[0]->cat_ID; //カテゴリーID
$parents = get_category_parents($cat_id, false, ',', true);
if ($parents) {
$parents = explode(',', $parents);
$root_cat = get_category_by_slug($parents[0]);
$cat_name = $root_cat->name; //カテゴリー名
$cat_slug = $root_cat->slug; //カテゴリースラッグ
$cat_id = (int)$root_cat->cat_ID; //カテゴリーID
}
$taxonomy = 'XXXXXX'; //カスタムタクソノミースラッグ
$term_slug = get_query_var('term'); //タームスラッグ
$the_term = get_term_by('slug', $term_slug, $taxonomy);
$term_name = $the_term->name; //ターム名
$current_menu_id = (int)$the_term->term_id; //タームID
$taxonomy = 'XXXXXX'; //カスタムタクソノミースラッグ $taxonomy_terms_cat = wp_get_object_terms($post->ID, $taxonomy); $taxonomy_terms_cat_name = $taxonomy_terms_cat[0]->name; //ターム名 $taxonomy_terms_cat_slug = $taxonomy_terms_cat[0]->slug; //タームスラッグ $current_menu_id = (int)$taxonomy_terms_cat[0]->term_id; //タームID //※ 複数タームに属する記事などで、所属タームを全部取りたければ、$taxonomy_terms_catをfor文やforeach文で回せばOK
(タームを取得する関数が違うだけです)
$taxonomy = 'XXXXXX'; //カスタムタクソノミースラッグ $taxonomy_terms_cat = get_the_terms($post->ID, $taxonomy); $taxonomy_terms_cat_name = $taxonomy_terms_cat[0]->name; //ターム名 $taxonomy_terms_cat_slug = $taxonomy_terms_cat[0]->slug; //タームスラッグ $current_menu_id = (int)$taxonomy_terms_cat[0]->term_id; //タームID //※ 複数タームに属する記事などで、所属タームを全部取りたければ、$taxonomy_terms_catをfor文やforeach文で回せばOK
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!