必ず「親子」でカテゴリ指定しているなら
$cat[1]->category_nicename;
だけでOKです。
カテゴリが全部クラスに出て良いなら
<div <?php post_class() ?>>
と書けば
<div class="post-ID番号 post hentry category-computer category-macintosh">
と出力されます。
kawa0310さん、kzさん、こんにちは。
get_the_category();
は階層に関係なく、カテゴリー名順に取得するだけなので必ずしも親が優先されるわけではありません。
つまり
$cat[1]->category_nicename;
では、子だとは限りません。
より下層のカテゴリーを取得するのであれば、
$cats = get_the_category();
$current_cat = '';
foreach ( $cats as $cat ) {
if ( ! $current_cat || cat_is_ancestor_of( $current_cat, $cat ) ) {
$current_cat = $cat;
}
}
のようにすべきです。
kzさん、jim912さん
ありがとうございました。
これで何とか解決できたようです。
kawa0310さんは解決されているのに掘り起こしてすみませんが
同様に悩んでいるので続きで質問させてください。
<li class="<?php $cat = get_the_category(); $cat = $cat[0]; {
echo "$cat->category_nicename" ;
} ?>">"><?php the_title(); ?>
以上のように書いてて、kawa0310さんとほぼ同様で子カテゴリースラッグを取得して、classにしたいのですが、jim912さんのおっしゃるように、書き出されるスラッグが子だとは限らないので、子スラッグだけを取得したいのですが、
$cats = get_the_category();
$current_cat = '';
foreach ( $cats as $cat ) {
if ( ! $current_cat || cat_is_ancestor_of( $current_cat, $cat ) ) {
$current_cat = $cat;
}
}
こちらを、どのように組み込めば子カテゴリーのスラッグを取得できるかが分からないのでご教授いただけませんでしょうか。
phpを理解してないが為の質問かと思いますが、どうぞ宜しくお願いいたします。
すみません、、上の<li class=〜〜〜の部分がおかしかったので再度書きます。
<li class="<?php $cat = get_the_category(); $cat = $cat[0]; {
echo "$cat->category_nicename" ;
} ?>"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
どうぞ宜しくお願いいたします。
解決済みのトピックに書いてはいけません。
また、書いても誰も回答してはくれません。
新しくトピックを立ててください。
chestnut_jpさん、ご指摘ありがとうございます。
失礼しました。
新しいトピックにて質問させて頂きます。