Как получить количество записей на странице архива?

14 февр. 2014 г., 11:32:10
Просмотры: 20K
Голосов: 12

У меня есть страница архива пользовательских записей типа archive-my_custom_post_type.php, и я использую "стандартный" цикл, который состоит из всем известного

<?php if(have_posts()) : ?>
    <?php while(have_posts()) : the_post(); ?>
        ...
    <?php endwhile;  ?>
<?php endif; ?>

Который, похоже, использует глобальные переменные.

Как мне получить общее количество записей для этой страницы? Мне нужно это для расчета ширины колонок, в которых я собираюсь отображать эти элементы.


Что ж, я нашел ответ:


После тщательного изучения переменной $GLOBALS в PHP, я обнаружил, что можно получить ссылку на WP_Query, который использовался для генерации страницы, с помощью $wp_the_query. И, о чудо, вы можете получить количество записей, используя этот удобный трюк:

$countPosts = $wp_the_query->post_count;

Надеюсь, это поможет всем, у кого была такая же проблема, как у меня!

2
Комментарии

Вы можете разместить свой ответ в поле для ответа под вашим вопросом и также отметить этот вопрос как решенный :)

Sven Sven
14 февр. 2014 г. 11:58:58

В следующий раз посмотрите в Кодексе — он далек от идеала, но иногда может быть полезен :)

gmazzap gmazzap
15 февр. 2014 г. 05:50:41
Все ответы на вопрос 1
0
19

Как указано в правке:

$count = $GLOBALS['wp_query']->post_count;

Другим вариантом будет использование

$count = $GLOBALS['wp_query']->found_posts
18 февр. 2014 г. 01:19:11