こんにちは
除外するカテゴリ ID の配列を指定する方法ではどうでしょうか。
下記コードは、除外するカテゴリ ID の配列を指定できる、get_the_category ライクな関数です。
functions.php 等に
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 my_get_the_category( false, array( 1, 2 ) ); ?>
ishitaka様
さっそくのご回答ありがとうございます。
続けてお尋ねしてもよろしいでしょうか?
<?php
$category = get_the_category();
$cat_id = $category[0]->cat_ID;
$cat_name = $category[0]->cat_name;
$cat_slug = $category[0]->category_nicename;
?>
<?php my_get_the_category( false, array( 1, 2 ) ); ?>
という風に記述したのですが、除外されていないようです。
書き方が違いますでしょうか?
get_the_category の代わりに、my_get_the_category を定義してこれを利用するという構成のはずですよ。
functions.php あたりに下記を書いて、my_get_the_category 関数を使えるようにした上で、
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;
?>
みたいな使い方じゃないでしょうか。