wp_reset_postdata() — восстанавливает значение глобальной переменной $post

Восстанавливает значение глобальной переменной $post на первоначально используемое на текущей странице, которое она берет из другой глобальной переменной — $wp_query.

Итак, значит функцию можно использовать после любых неосновных циклов вывода постов, которые никак не модифицируют переменную $wp_query, к таким циклам как раз можно отнести WP_Query.

Нужна для правильной работы the_title(), the_permalink(), the_content(), а также всех других функций, хоть как-то использующих $post или, в частности, $post->ID.

wp_reset_postdata()

Функция не принимает аргументов и ничего не возвращает.

Лежит в основе функции wp_reset_query().

Пример использования после цикла WP_Query

В этом примере выводим блок случайных постов:

$q = new WP_Query('posts_per_page=5&orderby=rand');
 
if($q->have_posts()):
	while($q->have_posts()) : $q->the_post();
		/* например анонс записи и ссылка */
	endwhile;
endif;
 
wp_reset_postdata();

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

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...