▽1
●
a-kuma3 ●300ポイント ベストアンサー |
get_post_type() で投稿タイプが取得できるので、それで分岐させる感じになると思います。
<?php // 記事のループ while (have_posts()): the_post(); ... if (get_post_type() == 'post'): // 通常投稿 $cat = get_the_category(); //カスタムフィールドでアイコンに表示させる $disp_cat = get_field('disp_cat'); // カスタムフィールド foreach($cat as $c) { if ($c->category_nicename == $disp_cat) { echo '<span class="cate-icon ' . $c->category_nicename . '">' . $c->cat_name . '</span>'; } } else: // その他(きっと、カスタム投稿) ?> <span class="cate-icon <?php echo esc_html(get_post_type_object(get_post_type())->name); ?>"><?php echo esc_html(get_post_type_object(get_post_type())->label ); ?></span> <?php endif; ... endwhile; ?>
カスタム投稿の分岐は else じゃなくて、elseif で、そのカスタム投稿のタイプを指定して判定した方が良いと思います。
<?php ... // else: // その他(きっと、カスタム投稿) elseif (get_post_type() == 'custom_foo'): // きっちり、カスタムタイプを指定して判定
カスタム投稿の種類がたくさんあると面倒ですけれど。
【参考】
関数リファレンス/get post type - WordPress Codex 日本語版