web-dev-qa-db-ja.com

カスタムWordpressループ(WP_Query)の投稿数を数えますか?

私はこれを入れてみました:

    <?php $count = count($custom_posts); ?>
    <h2><?php echo $count; ?></h2>

ループの終わりに:

      <?php if ( bbp_get_forum_title() == 'Test Forum 1' ) : ?>
            <?php $custom_posts = new WP_Query(); ?>
            <?php $custom_posts->query('post_type=blocks&location=Business and Finance&order=DESC'); ?>
            <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>
                <div class="ad">
                    <?php the_content(); ?>
                </div>
                <?php $count = count($custom_posts); ?>
                <h2><?php echo $count; ?></h2>
            <?php endwhile; ?>
      <?php endif; ?>

しかし、投稿の総数ではなく、私はこの出力を得ています:

翻訳1

Loremイプサムdolor座ってamet、conittetuer adipiscing elit、sedのnonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat UT WISI ENIM 1

これを修正するための提案はありますか?

38
janoChen

投稿の総数を取得する正しい方法は次のとおりです。

<?php $count = $custom_posts->post_count; ?>

http://codex.wordpress.org/Class_Reference/WP_Query#Properties

編集:@Kresimir Pendicの答えをおそらく正しいと認める。 post_countは、その特定のページの投稿数です。一方、found_postsは、ページ区切りなしでクエリの要件を満たす利用可能なすべての投稿の数です。訂正していただきありがとうございます。

66
Manny Fleurmond

マニーは正しいドキュメンテーションページをリンクしましたが、post_countは間違っています。 WP_Queryが返す投稿の総数を取得するには、 "found_posts"を使用します。

<?php

// The Query
$query = new WP_Query( $args );
$total = $query->found_posts;
40
Kresimir Pendic