web-dev-qa-db-fra.com

Compter les posts d'une boucle Wordpress personnalisée (WP_Query)?

J'ai essayé de placer ceci:

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

à la fin de la boucle:

      <?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; ?>

Mais au lieu du total des posts, j'obtiens cette sortie:

Traduction 1

Lorem ipsum dolor sit amet, consectetuer elit adipiscing, sed diam nummh non euh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim 1

Des suggestions pour résoudre ce problème?

38
janoChen

La manière correcte d’obtenir le nombre total de messages est:

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

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

Edit: reconnaître que la réponse de @Kresimir Pendic est probablement correcte. post_count est le nombre de publications pour cette page particulière, alors que found_posts est le nombre de toutes les publications disponibles qui répondent aux exigences de la requête sans pagination. Merci pour la correction.

66
Manny Fleurmond

Manny a lié la page de documentation correcte mais post_count est faux. Pour obtenir le nombre total de publications, WP_Query renvoie, utilisez "found_posts"

<?php

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