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();

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: