WordPress как на ладони
rgbcode is looking for WordPress developers.

wp_reset_query()WP 2.3.0

Аннулирует данные последнего запроса, созданного для использования в произвольном Цикле WordPress.

Произвольный запрос осуществляется функцией query_posts(), которая переписывает глобальную переменную $wp_query.

Функция должна вызываться сразу после произвольного цикла и нужна, чтобы все условные теги работали правильно и глобальные переменные соответствовали текущей странице.

1 раз — 0.000022 сек (очень быстро) | 50000 раз — 0.04 сек (скорость света)

Хуков нет.

Возвращает

null. Функция не возвращает никаких данных.

Использование

<?php wp_reset_query(); ?>

Примеры

0

#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 6.4.3

function wp_reset_query() {
	$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
	wp_reset_postdata();
}
5 комментариев
    Войти