この記事にはプロモーションが含まれています。

【WordPress】WP_Queryなどのサブループ内で投稿タイプを判定する方法

【WordPress】WP_Queryなどのサブループ内で投稿タイプを判定する方法

この記事では

WordPressのサブループ内で
記事の投稿タイプを判定して条件分岐する方法

をご紹介します。

サブループを回すときはWP_Queryなどの仕組みを使用します。

そこで複数の投稿タイプの記事を取得する場合に、今回ご紹介する方法が有効です。

WP_Queryについて詳しく知りたい方はこちらの記事をご覧ください。




ケケンタ

ケケンタのITブログでは、WebアプリPHPLaravel)やWeb制作WordPressコーディング)について情報を発信しています。
学習中の方や実務をされている方など多くの方にアクセスいただいていますので、ぜひほかの記事も参考にしてみてください!


運動不足、気になっていませんか?

もしプログラミング学習やお仕事で運動不足が気になっているなら
連続屈伸運動がおすすめです!

ボタンにカーソルを合わせるだけ
カウントダウンが始まるタイマーをご用意してみました!

ケケンタ

無理のない範囲で、ぜひ隙間時間に屈伸運動を取り入れてみて下さい!

タイマースタート

3:00

※運動不足だと連続3分で取り組んでもかなり息が切れます
(僕は加えて気分もちょっと悪くなりました……)
絶対にご無理の無い範囲でお取り組みください!


目次

【結論】WP_Queryなどのサブループ内で投稿タイプを判定する方法

サブループ内で記事の投稿タイプを取得するにはget_post_type()を使用します。

get_post_type()とは?

get_post_type()は「現在の記事の投稿タイプ」や「引数で指定した記事の投稿タイプ」を取得可能なテンプレートタグです。

サブループ内で使用することにより、「ループ内で出力中の記事の投稿タイプ」も取得することができます。

<?php
    $args = [
        'post_type' => array( 'foo-type','bar-type' ), // 複数の投稿タイプを指定するときは配列を使用
    ];
    $wq = new WP_Query( $args );
?>

<!-- ループ開始 -->
<?php if ( $wq->have_posts() ) :
    while ( $wq->have_posts() ) : $wq->the_post(); ?>
        <?php if ( get_post_type() === 'foo-type' ): ?>

            // 投稿タイプ「foo-type」の記事ならこの中の処理を実行

        <?php elseif ( get_post_type() === 'bar-type' ): ?>

            // 投稿タイプ「bar-type」の記事ならこの中の処理を実行
            
        <?php endif: ?>

        // ここの処理はすべての記事で実行

    <?php endwhile ?>
<?php endif ?>
<!-- ループ終了 -->

<?php wp_reset_postdata(); ?>

このように記述することで、投稿タイプが「foo-type」のときと「bar-type」のときとで処理の内容を条件分岐することが可能です。

ケケンタ

あまり多くないケースかもしれませんが、「ページ構成は同じだけど、部分的に出力したい内容が異なる場合」などに重宝します!

まとめ

以上がWordPressのサブループ内で記事の投稿タイプを判定して条件分岐する方法でした。

あまり多いケースではないかもしれませんが、複数の投稿タイプの記事をサブループで出力したいときに、今回ご紹介した方法が役立ちます。

特にページ構成が同じで、部分的に出力内容が異なるようなシチュエーションで重宝しますので、ぜひご活用いただければと思います。

ケケンタ

それでは、最後までご覧いただきありがとうございました!

当ブログではWordPressやWeb制作、PHPに関する情報を発信しています。

ご興味のある方はほかの記事もご覧いただけるとうれしいです!

【WordPress】WP_Queryなどのサブループ内で投稿タイプを判定する方法のアイキャッチ画像

この記事が気に入ったら
フォローしてね!

この記事が良いと思ったらシェアしてね!

コメント

コメントする

CAPTCHA


目次