Поддержка Проблемы и решения Вывод последнего поста из категории в боковой панели.

  • Необходимо в левом сайдбаре выводить посты из специальной категории.
    Плагин, выводящий пост целиком нашёлся лишь один, но при его использовании наблюдается та же проблема, что и при ручном введении кода:

    <?php query_posts('cat=35&showposts=1'); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <?php the_content(); ?>
    <?php endwhile; else: ?>
    <?php endif; ?>

    Суть проблемы: когда активен виджет с этим кодом, вместо любого поста, а также вместо списка постов любой категории выводится последний пост из категории 35 и только он.
    Для всего кода, идущего после этого виджета не действуют параметры типа is_single, is_category.
    Вопрос — возможно ли как-то закрыть код, чтобы после него всё шло так, как и должно быть без него?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно так:

    <?php if ( $sidebar_posts = get_posts('category=35&numberposts=1') ) : ?>
    <?php foreach ( $sidebar_posts as $post ) : ?>
    <?php setup_postdata($post); ?>
    <?php the_content(); ?>
    <?php endforeach; ?>
    <?php endif; ?>

    Благодарю за внимание.
    Но такой код у меня не выводит ничего.
    Уточнение: указанные проблемы наблюдаются в центральной части, где должны быть сами посты.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Исправил ID рубрики на 35, проверьте снова.

    Да это я догадался поправить, не так чтоб совсем нуб, но увы. Ни через Advanced Text виджет, ни прямым встраиванием в код сайдбара.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Не хватало одной строки: setup_postdata($post) — исправил.
    Ещё можно попробовать после первого фрагмента добавить:

    <?php wp_reset_query(); ?>

    Теперь заработало как надо, спасибо)

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Вывод последнего поста из категории в боковой панели.» закрыта для новых ответов.