人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

条件分岐して表示する方法を教えて下さい。

トップページ(home.php)に通常投稿とカスタム投稿を合わせた記事一覧を表示しております。
その際に、記事のスラッグとカテゴリー名を以下のコードで取得したいと思っております。

(1)通常投稿
<?php

$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>';
}
}

?>

(2)カスタム投稿
<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>


記事が通常投稿の時は(1)を表示し、カスタム投稿の場合は(2)を表示する条件分岐のコードを教えてくださいませ。

よろしくお願いいたします。

●質問者: kamefactory
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

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 日本語版


kamefactoryさんのコメント
ご連絡が遅くなり申し訳ありません! 希望通りに出来ました! 本当にありがとうございます。 またよろしくお願いします。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ