Главная » WordPress » Статьи Wordpress » Не забывайте использовать wp_reset_query!
Распечатать статью

Не забывайте использовать wp_reset_query!

Очень часто при создании или модификации шаблонов необходимо вывести, например, записи из определенной рубрики, в определенном количестве и т.п. Для этого используется конструкция вида:

<?php

//Запрос
query_posts(‘posts_per_page=5′);

//Цикл
if ( have_posts() ) : while ( have_posts() ) : the_post();

endwhile; else:

endif;
?>

Однако, очень многие, и я в том числе, забывают ставить после окончания цикла

<?php wp_reset_query(); ?>

В итоге, если у нас несколько таких условий в шаблоне, это приводит к самым неожиданным результатам, и многие просто не могут догадаться «откуда ноги растут» у того или иного «глюка». Например, в хлебных крошках может отображаеться только одна рубрика, которая упоминалась в каком-то пользовательском цикле, вместо той рубрики, в которой находится сейчас пользователь. Или на страницах ежемесячных архивов дублируются все записи без разбивки по месяцам.

Функция wp_reset_query () сбрасывает условия запроса через query_posts после выполнения в цикле, и позволяет пользовательским циклам работать корректно.

Правильная конструкция будет выглядеть так:

<?php

//Запрос
query_posts(‘posts_per_page=5′);

//Цикл
if ( have_posts() ) : while ( have_posts() ) : the_post();

endwhile; else:

endif;

//Сброс запроса
wp_reset_query();
?>

 

Источник:  wordpresse.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

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

Похожие статьи