ループが始まる前に投稿の総数を知る方法はありますか?私は2つのループを使うことを考えています。最初のものはカウントをしますが、2番目のものはコンテンツを扱います。しかし、私はこのアプローチが「優雅」だとは思わない。他の解決策はありますか?
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;
特定のクエリの全投稿数は$GLOBALS['wp_query']->found_posts
にあります。
あなたが見ているページだけの全投稿数は$GLOBALS['wp_query']->post_count
にあります。
利用可能なすべての変数を確認するには、次のようにテストします。
add_action( 'loop_start', function() {
print '<pre>'
. htmlspecialchars(
print_r( $GLOBALS['wp_query'], TRUE ),
ENT_QUOTES,
'utf-8',
FALSE
)
. '</pre>';
});