Получение количества сообщений текущего цикла при использовании нескольких запросов на одной странице
4 ответ
- голосов
-
- 2011-10-16
$wp_query
удерживает основной цикл страницы и не должен использоваться для создания нескольких циклов.Если вы используете новый объект
WP_Query
,тогда ваша переменная,которая его хранит,будет иметь соответствующее количество:$my_query = new WP_Query(); // stuff $count = $my_query->post_count;
Если вы используете
get_posts()
,тогда объектWP_Query
недоступен,и вам нужно просто подсчитать возвращаемый набор:$posts = get_posts(); $count = count($posts);
$wp_query
hold main loop of page and should not be used to create multiple loops.If you are using new
WP_Query
object then your variable that holds it will have according count:$my_query = new WP_Query(); // stuff $count = $my_query->post_count;
If you are using
get_posts()
thenWP_Query
object is not accessible and you should just count returned set:$posts = get_posts(); $count = count($posts);
-
Примечание: если вы находитесь в основном цикле,вы можете получить доступ к `WP_Query` через`global $ wp_query`Note: If you are in the main loop, you can access `WP_Query` through `global $wp_query`
- 0
- 2019-10-22
- mrmadhat
-
- 2011-10-16
Я считаю,чтоpost_count хранится в глобальном,поэтому перед пользовательским циклом вы должны установить его на
0
,поскольку вы можете использовать его вне цикла,но это зависит от того,как вы структурируете свойнесколько запросов,может,вы можете добавить их в свой пост?Есть еще один способ,который я использую в цикле,который подсчитывает сообщения,например,с использованием
current_post + 1
.<?php $my_query = new WP_Query();?> <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post(); $count_posts = $my_query->current_post + 1; //counts posts in loop endwhile;?>
I believe the post_count is stored in the global, so before the custom loop you should set it to
0
, since you can use it outside the loop, but this depends on how you are structuring your multiple query's, maybe you can add them to your post?There is another way that I use within the loop that counts posts using
current_post + 1
, for example.<?php $my_query = new WP_Query();?> <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post(); $count_posts = $my_query->current_post + 1; //counts posts in loop endwhile;?>
-
- 2019-05-21
Альтернативное решение с использованием WP_Query:
<?php $args = array( 'post_type' => 'post' ); $the_query = new WP_Query( $args ); $totalpost = $the_query->found_posts; ?>
An alternative solution using WP_Query would be:
<?php $args = array( 'post_type' => 'post' ); $the_query = new WP_Query( $args ); $totalpost = $the_query->found_posts; ?>
-
- 2019-05-08
Простой способ подсчитать общее количество сообщений,включая нумерацию страниц
<?php global $wp_query echo $wp_query->found_posts; ?>
Simple way to count total post including pagignation
<?php global $wp_query echo $wp_query->found_posts; ?>
Я пытаюсь подсчитать количество текущих сообщений внутри цикла.Я использую несколько циклов на одной странице в своей теме.Пока у меня есть:
Но когда я печатаю $my_post_count,он возвращает номер всех сообщений на моем сайте WP.Может ли это иметь какое-то отношение к использованию нескольких запросов на одной странице?Я пробовал использовать wp_reset_query после каждого цикла,чтобы убедиться,что я не выбрасываю вещи таким образом.Что я делаю не так?