wp_reset_query()
Аннулирует данные последнего запроса, созданного для использования в произвольном Цикле WordPress.
Произвольный запрос осуществляется функцией query_posts(), которая переписывает глобальную переменную $wp_query.
Функция должна вызываться сразу после произвольного цикла и нужна, чтобы все условные теги работали правильно и глобальные переменные соответствовали текущей странице.
Хуков нет.
Возвращает
null. Функция не возвращает никаких данных.
Использование
<?php wp_reset_query(); ?>
Примеры
#1 Сброс данных запроса после выполнения цикла
В этом примере показано, как использовать функцию после цикла. Обратите внимание, что цикл в примере, вероятно, используется в дополнение к основному циклу.
<?php query_posts( [ 'post_parent' => 5 ] ); if ( have_posts() ): while ( have_posts() ) : the_post(); // Do stuff with the post content. the_title(); the_permalink(); // Etc. endwhile; else: // Вставьте текст или шаблон, если постов не найдено. endif; wp_reset_query(); ?>
query_posts() изменит ваш основной запрос, и это может стать большой проблемой. Используйте query_posts() только в случае крайней необходимости. Создание нового экземпляра WP_Query или get_posts() - гораздо лучший способ для вторичных циклов. Если вы хотите изменить основной запрос, используйте событие pre_get_posts. Фильтр pre_get_posts можно разместить в файл functions.php.
Заметки
- Global. WP_Query.
$wp_queryWordPress Query object. - Global. WP_Query.
$wp_the_queryCopy of the global WP_Query instance created during wp_reset_query().
Список изменений
| С версии 2.3.0 | Введена. |
Код wp_reset_query() wp reset query WP 7.0
function wp_reset_query() {
$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
wp_reset_postdata();
}