ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

ループ内でカスタム投稿タイプを判別して出力を分ける@WordPress

f:id:showjinx:20160715114059j:plain

WordPressのループ内で投稿タイプを判別して出力を出し分ける例です。

例えば、投稿タイプごとに見出しにそれとわかるアイコン画像を表示したいとか、特定の文字列を表示したいとか。

ようするに、指定した投稿タイプごとに出力を分けたい場合に使えます。

ループには get_posts() を使っています。

<?php
    $args = array(
        'post_type' => array('post', 'seminar'), /* 投稿タイプを指定 *複数指定する場合はカンマ区切りで */
        'paged' => $paged,
        'posts_per_page' => 5, /* 取得記事件数 */
    );
?>
<?php $my_posts = get_posts( $args ); ?>
<?php if ( $my_posts ) :
    foreach ( $my_posts as $post ) : setup_postdata( $post ); ?>
        <div class="home_info-desc">
            <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
            <?php
                if($post->post_type == 'post'){
                    echo 'デフォルトの投稿の場合';
                }elseif($post->post_type == 'seminar'){
                    echo '投稿タイプのスラッグが "seminar" の場合';
                };
            ?>
        </div>
<?php endforeach; ?>
<?php else : /* 投稿がないとき */ ?>
    <p>情報はありません。</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?>