この実装、面倒なら代行します
カテゴリーやターム(カスタム投稿タイプ記事のカテゴリ)の取得方法は、詳細ページ、カスタムタクソノミー(カテゴリー)ページ、それぞれに異なります。
そしてたまに、どっちだったか、割と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; //カテゴリースラッグ
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カスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。