https://ja.wordpress.org/support/topic/get_the_category%E3%81%A7%E7%89%B9%E5%AE%9A%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%82%92%E9%99%A4%E5%A4%96%E3%81%99%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9/
function my_get_the_category( $id = false, $exclude = array() ) { $cats = get_the_category( $id ); $excluded_cats = array(); foreach( $cats as $cat ) { if ( !in_array( $cat->cat_ID, $exclude ) ) { $excluded_cats[] = $cat; } } return $excluded_cats; }
<?php $category = my_get_the_category(false, array(1, 2)); $cat_id = $category[0]->cat_ID; $cat_name = $category[0]->cat_name; $cat_slug = $category[0]->category_nicename; ?>
上記のみでは 小カテゴリは表示されてしまうので
追加記入
<?php //カテゴリでインフォメーションとインフォメーションの子カテゴリのチェックがあってもそれをアイコンに表示させない $taxonomy_name = 'category'; $termchildren = get_term_children( $info_cat, $taxonomy_name );//インフォカテの小カテをすべて取得 array_push($termchildren, $info_cat);//取得したものにインフォカテを追加 ?> <?php $cat = my_get_the_category(false, $termchildren );//ファンクション独自関数 if(empty($cat)){$cat = get_the_category();}//もしインフォカテゴリのみ場合 普通にget_the_categoryでインフォメーションを取得 $cat = $cat[0]; { echo $cat->cat_name; } ?>