普通にifで分ければいいかと。
<?php
$str = '';
foreach(get_the_category() as $cat){
if($cat->term_id!=="5"):
$str .= $cat->cat_name . '・';
endif;
}
echo rtrim($str, "・");
個人的にはなんか文字列連結して最後の不要な記号だけ剥ぎ取って出力するやり方は苦手…
ご返信ありがとうございました。
<?php
$str = ”;
foreach(get_the_category() as $cat){
if($cat->term_id!==”14″):
$str .= $cat->cat_name . ‘・’;
endif;
}
echo rtrim($str, “・”);
?>
以下のとおりやってみましたが、ID14のカテゴリー名も出力されてしまいます。。
なぜでしょう。
Cpdexの型情報が間違ってる可能性が微レ存…………
if($cat->term_id!==14):
にしてみてください。それか!=を使うか…………
すいません、こちらIDを複数指定したい場合はカンマ区切りで大丈夫でしょうか?
この辺りはPHPの比較のやり方になるわけですが…………
もちろんこのやり方では , で並べてもダメです。
コスパ的にどうなのかわからないけど複数のカテゴリーを除外するならin_array使えば楽かな。
<?php
$str = '';
$exclude=[3,15];//除外するカテゴリーIDを配列で
foreach(get_the_category() as $cat){
if(!in_array($cat->term_id,$exclude)):
$str .= $cat->cat_name . '・';
endif;
}
echo rtrim($str, "・");
すごい!できました!
ありがとうございました!あなたは神様ですか!
Hinaloeさん、日本語Codexのget_the_categoryを最近更新した者です。
関数のソースを確かめたところ、ご指摘のとおり整数でした。他にも幾つか整数型が返されるフィールドがありました。( sanitize_term_field関数の中で整数型に強制しています。)
本家Codexを見てstringって書いてるな~と思ってそれを元に書いてその後駄目だったと聞いてまさかと思って確認したらここにintって書かれてたんですよね…
本家のミスですよね。修正しておくか…