# WP_RESET_QUERY() │ WordPress 2.3.0
Функция WP_RESET_QUERY()
очищает данные последнего запроса, созданного для использования в произвольном цикле WordPress, и восстанавливает стандартные данные цикла.
Произвольный запрос (циклы WordPress) выполняется с помощью функции query_posts()
, которая перезаписывает глобальную переменную $wp_query
.
Эту функцию следует использовать после query_posts()
или если в коде использованы переменные $posts
или $wp_query
. Она поможет убрать неясные ошибки, которые могут возникнуть, если объект WP_Query был перезаписан.
Эту функцию нужно вызывать сразу после произвольного цикла, чтобы все условные теги работали правильно, а глобальные переменные соответствовали текущей странице (запросу).
Время выполнения:
- 1 раз — 0.000022 сек (очень быстро)
- 50000 раз — 0.04 сек (световая скорость)
**Нет хуков.**
## Возврат
Функция возвращает null
. То есть, ничего (null).
## Использование
Для вызова функции просто используйте:
```php
wp_reset_query();
Примеры
Пример 1: Сброс данных запроса после пользовательского цикла
В этом примере показано, как использовать функцию после пользовательского цикла. Обратите внимание, что цикл в примере, вероятно, используется в дополнение к основному циклу.
5 ] );
if ( have_posts() ):
while ( have_posts() ) :
the_post();
// Обработаем содержимое поста.
the_title();
the_permalink(); // И так далее.
endwhile;
else:
// Вставьте любое содержимое или загрузите шаблон, если посты не найдены.
endif;
wp_reset_query();
?>
Использование query_posts()
изменит ваш главный запрос, что может быть серьезной проблемой. Используйте query_posts()
только в крайних случаях. Создание нового экземпляра WP_Query
или get_posts()
— это гораздо лучший способ для вторичных циклов. Если вы хотите изменить основной запрос, используйте действие pre_get_posts
. Фильтр pre_get_posts
можно добавить в ваш файл functions.php
.
Заметки
- Глобальная переменная.
WP_Query
.$wp_query
— объект запроса WordPress. - Глобальная переменная.
WP_Query
.$wp_the_query
— копия глобального экземпляра WP_Query, созданного во время выполненияwp_reset_query()
.
Изменения в версии
- С версии 2.3.0 — введена в использование.
Код функции
function wp_reset_query() {
$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
wp_reset_postdata();
}
Связанные функции
Сброс
wp_reset_postdata()
Запросы
esc_sql()
get_boundary_post()
get_children()
get_page_by_title()
get_pages()
get_posts()
get_queried_object()
get_queried_object_id()
get_query_var()
have_posts()
query_posts()
rewind_posts()
set_query_var()
setup_postdata()
wp()
wp_get_recent_posts()
WP_Query()
wp_reset_vars()