2010-07-29 4 views
0

Хорошо, у меня есть две петли, идущие в корпусе и на боковой панели. У меня также есть условное выражение в нижнем колонтитуле, которое генерирует другой цикл. Проблема, с которой я сталкиваюсь, заключается в использовании условного оператора в нижнем колонтитуле. Поскольку цикл на боковой панели был вызван последним, Wordpress использует свои переменные в условном выражении в нижнем колонтитуле и заставляет его возвращать false.Условный конфликт Wordpress Multi Loop

Возможно, есть какой-то способ сделать некоторые из переменных в цикле в теле $ _GLOBAL, таким образом я могу использовать его позже и не иметь конфликт с циклом на боковой панели?

спасибо

ответ

1

Запустить новый запрос; вы можете запускать столько, сколько хотите, в пределах стандартного цикла WP. Я не то, что вы делаете в ваших текущих циклах, но это пример нового запроса, который может сосуществовать с основным циклом WP, а также другими случаями запроса:

<?php $my_query = new WP_Query('category_name=mycategory&showposts=1'); ?> 
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?> 
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> 
<?php the_title(); ?></a> 
<?php endwhile; ?> 

Также см Function Reference/WP Query « WordPress Codex и Function Reference/wp reset query « WordPress Codex

+0

работал отлично. Благодарю. Я полагаю, что этот метод лучше, чем использование query_posts? –

+0

Обычно я оставляю основной цикл WP, если только он не находится на очень конкретной странице шаблона. Вышеуказанный запрос будет запускаться в сообщениях и страницах с включенным php exec) и в виджетах с поддержкой php. См. Также ссылку на документ wp_reset_query, добавленную выше. – markratledge

Смежные вопросы