gavinanderegg
  • 0
Учитель

Использование wp_list_pages() после вызова query_posts()

  • 0

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

У меня в основном сайт на основе страниц, но есть несколько «страниц», где мой контент поступает из пользовательского query_posts() вызова. На всех этих страницах я хочу использовать wp_list_pages() для создания поднавигации. Это прекрасно работает, когда я нахожусь на обычной странице, но когда я нахожусь на «странице» с query_posts() контентом, это вообще не работает.

Вот пример того, что я имею в виду под «страницей». Это файл темы с именем page-media.php :

<?php get_header(); ?>

<?php query_posts('category_name=in-the-media'); ?>

    <?php get_template_part('loop', 'index'); ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Поднавигация происходит в sidebar.php, так что это происходит после цикла.

Вот как я создаю свое меню:

if($post->post_parent)
{
    $children = wp_list_pages('title_li=&child_of=' . $post->post_parent . '&echo=0');
}
else
{
    $children = wp_list_pages('title_li=&child_of=' . $post->ID . '&echo=0');
}

Затем я печатаю $children позже в формате <ul> . Это отлично работает на странице или ее подстранице, но ничего не отображает на странице, где я вызвал query_posts() .

Правильно ли я подхожу к этому? Есть что-то, что мне не хватает?

Спасибо!

Share
  1. Добавьте wp_reset_query(); после цикла перед wp_list_pages

    • 0
  2. Это для будущих спрашивающих. Всякий раз,
    когда вы используете query_posts или пользовательский wp_query, вы должны добавить wp_reset_query(); после вашего цикла или когда вы закончите обработку своих сообщений. Эта небольшая строка кода поможет решить проблемы с нумерацией страниц или, в вашем случае, оставить глобальный $post исходным, как перед вашим запросом.

    • 0

Оставить ответ

You must login to add an answer.