2013-10-10 5 views
0

Я добавил новую часть кода в мой header.php, теперь содержимое для моих страниц не отображается.Содержание WordPress не отображается

В моем index.php основного теге я этот код

  <?php if(!is_home() || !is_front_page) { // dont display on home page 

        if (have_posts()) : while (have_posts()) : the_post(); 
           the_content(); 
           endwhile; else: ?> 
           <p>Sorry, no posts matched your criteria.</p> 
           <?php endif; 
        } ?> 

с тех пор, как добавить код ниже мой header.php, the_content для моих страниц не отображается. например О, Контакт и т.д.

<?php 
      query_posts('cat=Gallery'); 
      while (have_posts()) : the_post(); 
      the_content(); 
      endwhile; 
      ?> 

Код в header.php является извлечение сообщения из определенной категории, но теперь содержание моих страниц не отображаются. Где я неправ?

+0

Можете ли вы опубликовать полный код, чтобы мы могли видеть его в контексте? Я не эксперт, чтобы советовать в его использовании, но я всегда советю против циклов while, также, если - endif не нужно, просто заверните свои утверждения в {} – tremor

+1

Это потому, что, вызывая 'query_posts', изменив «основной запрос». Добавление 'wp_reset_query()' после того, как ваш цикл заголовка должен восстановить основной запрос, но со стоимостью второго вызова базы данных. Лучшим способом было бы использовать класс WP_Query вместо query_posts ... –

+0

Как заменить класс WP_Query и что он делает? – user892134

ответ

2

query_posts() замещает сообщения, полученные WordPress - см. the Codex page.

Попробуйте вместо этого использовать get_posts().

Возможно, было бы полезно позвонить wp_reset_query() после вашего цикла заголовка, что может помочь предотвратить неожиданное поведение.

+0

Я пробовал get_posts(), но не работал. Это то, что я сделал, но содержимое страницы не отображается. ' 'Это правильно? Это без добавления 'wp_reset_query()'. – user892134

+1

Стоит отметить, что 'setup_postdata()' должен вызываться для каждого из результатов 'get_posts()' для использования функций, которые используют глобальные переменные $ post, такие как 'the_content()' (и 'wp_reset_postdata() 'после цикла) –

+0

Если ответ onetrickpony не помог, [этот вопрос] (http://stackoverflow.com/questions/4698576/get-posts-doesnt-work-but-query-posts-does- wordpress) имеет пример – Hobo

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