我尝试替换以下内容:

    <?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 ipsum dolor sitmet,consectetuer adipiscing elit,sed diam
虚构的nibh euismod Tincidunt ut Laoreet dolore magna aliquam erat
volutpat。 Ut wisi enim 1


有任何建议解决此问题吗?

#1 楼

获取帖子总数的正确方法是:

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


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

编辑:确认@Kresimir Pendic的回答可能正确。 post_count是该特定页面的帖子计数,而found_posts是所有满足查询要求且无分页的可用帖子的计数。谢谢您的指正。

评论


谢谢!嘿,最后一个问题。我如何使用该数字来制作if语句,该语句不在该循环中(在循环之前)。因为似乎数字仅在我将变量放在该循环后才显示。

– janoChen
11年8月28日在14:02

您可以将$ count = $ custom_posts-> post_count放在$ custom_posts-> query()之后。请注意,$ custom_posts-> post_count仅会为您提供结果集的该“页面”中的结果数。如果需要获取“整个”结果集中的结果总数,请使用$ custom_posts-> found_posts。

–罗伯特·杜金
16年7月29日在0:34

在大多数情况下,此答案很可能不正确。使用found_posts(所有找到的帖子)而不是post_count(此页面上显示的帖子数)。从逻辑上来讲,此评论是多余的,但从社交角度而言,则并非如此。

– Herbert Van-Vliet
17年12月23日在11:43

这个答案是不正确的。 $ custom_posts-> post_count将返回此页面上显示的帖子数量,因此它将显示查询的posts_per_page值,或者如果要显示的剩余数量较少,则显示较低的值。正确的答案应该是<@ kresimir-pendic>的答案,该答案使用$ custom_posts-> found_posts

– Infinity Media
18-3-12在14:13



#2 楼

Manny链接了正确的文档页面,但post_count错误。
要获取WP_Query返回的帖子总数,请使用“ found_posts”

<?php

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


评论


这个应该是公认的答案。

–克里斯汀·库珀♦
18年2月6日在15:49

这绝对是正确的答案。

– Infinity Media
18 Mar 12 '18 at 14:13

我也确认这是正确的答案。这应该被接受。

–我是最愚蠢的人
19年6月21日在6:43

我可以确认这一答案确实是正确的。如重新确认

–比桑德
1月30日11:01

在确认最近确认的确认时,我确定原始确认确实已确认,之后的确认也是如此。

– 38365
8月18日20:53

#3 楼

或这样:
$query = new WP_Query( $args );
$count = $query->post_count;