web-dev-qa-db-fra.com

Connaître le nombre total de messages avant d'entrer dans la boucle

Existe-t-il un moyen de connaître le nombre total de publications avant le début de la boucle? Je pense utiliser deux boucles. Le premier comptera, tandis que le second se chargera du contenu. Cependant, je ne pense pas que cette approche soit "élégante". Toute autre solution?

2
Daniel

functions.php:

function wpse8170_get_posts_count() {
    global $wp_query;
    return $wp_query->post_count;
}

index.php:

if (have_posts()) :
    echo '<h1>' . wpse8170_get_posts_count() . ' Posts Found</h1>';

    while ( have_posts() ) : 
        the_post();
        //...
    endwhile;
endif;
7
Eugene Manuilov

Le nombre total de publications pour une requête donnée est dans $GLOBALS['wp_query']->found_posts.

Le nombre total de publications correspondant uniquement à la page que vous consultez est dans $GLOBALS['wp_query']->post_count.

Pour voir toutes les variables disponibles, testez-le avec:

add_action( 'loop_start', function() {
    print '<pre>'
        . htmlspecialchars(
            print_r( $GLOBALS['wp_query'], TRUE ),
            ENT_QUOTES,
            'utf-8',
            FALSE
        )
        . '</pre>';
});
2
fuxia