サポート » 使い方全般 » カスタム投稿 タクソノミーの件数で条件分岐

  • 解決済 sodajpn

    (@sodajpn)


    こんにちは、
    記事件数による条件分岐に関して、わからない点があるので質問します。

    以下のコードで、「カスタム投稿の公開件数」による条件分岐はできるのですが、

    <?php $counts = wp_count_posts( 'カスタム投稿名','publish' ); if( ($counts->publish) >= 2 ): ?>

    「カスタム投稿内の特定タクソノミー(term)の公開件数」という条件での分岐ができずに困っています。
    イメージとしては、以下のようなことがやりたいのですが、正しく分岐できていません。

    <?php $counts = wp_count_posts( array('post_type' => 'カスタム投稿名', 'taxonomy' => 'タクソノミー名', 'term' => 'ターム名' ), 'publish' ); if( ($counts->publish) >= 2 ): ?>

    お分かりになる方、ご教示のほどよろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • get_posts() で投稿を取得して、戻り値(ふつうは配列です)の要素数を見ればよいと思います。

    モデレーター jim912

    (@jim912)

    補足ですみません。

    記事件数を取得するのに get_posts を用いる場合、posts_per_page を -1 に指定する必要があります。
    また、記事数が多いとメモリオーバーのエラーの可能性が高くなります。
    戻り値パラメータ の fieles で ids を指定すると、IDのみの配列となるため、エラーの発生を抑えられます。

    また、アーカイブページを表示している場合は、$wp_query->found_posts に、表示中のアーカイブの総件数が格納されています。

    > gblsmさん
    > jim912さん

    ご丁寧な回答ありがとうございました。

    ひとまず、以下のコードで希望する動作を得ることができました。

    <?php $args = array( 'post_type' => 'カスタム投稿名', 'taxonomy' => 'タクソノミー名', 'term' => 'ターム名'); $counts = count( get_posts( $args ) ) ; if( $counts >= 2 ): ?>

    ありがとうございました。解決済みにします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿 タクソノミーの件数で条件分岐」には新たに返信することはできません。