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_query WordPress Query object.
- Global. WP_Query. $wp_the_query Copy of the global WP_Query instance created during wp_reset_query().
Список изменений
С версии 2.3.0 | Введена. |
Код wp_reset_query() wp reset query WP 6.6.2
function wp_reset_query() { $GLOBALS['wp_query'] = $GLOBALS['wp_the_query']; wp_reset_postdata(); }