Как вывести последние посты из определенной категории в WordPress

Без плагина WordSmall

посты из категорий

Каждый владелец сайта или блога старается всеми возможными способами улучшить доступ к размещенной информации на своем ресурсе. Это создает нужную атмосферу, повышает юзабилити, что очень важно, и, главное, все находится на виду. Пусть это будет даже что-то банальное, к примеру, последние комментарии в сайдбаре, зато насколько они упрощают взаимодействие. Таких виджетов может быть множество и самых разных определений, а из сегодняшней статьи узнаете, как вывести последние посты из нужной вам категории.

Такой прием, в первую очередь, будет полезен многофункциональным сайтам, порталам, новостным источникам и прочее. Ведь они, как правило, содержат большое количество рубрик/категорий. И самое простое решение показать пользователю полный ассортимент контента – это вывести последние опубликованные статьи из самых важных разделов.

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

Шаг 1-й.

По умолчанию WordPress не поддерживает php в сайдбаре, так что первым делом сделаем поддержку (использовав код из этой статьи). Следующим действием скопируем ниже представленный код и поместим его в текстовый виджет во вкладке «Внешний вид-Виджеты».

<ul class="cat-post-bar">
        <?php $the_query = new WP_Query('cat=8&showposts=4'); ?>
        <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
        <li>
        <a href="<?php the_permalink() ?>"><?php echo get_the_post_thumbnail( $post->ID, 'thumbnail'); ?></a>
        <a class="title" href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?>     </a><br/>
        </li>
        <?php endwhile; ?>
        <?php wp_reset_query(); ?>
</ul>

Шаг 2-й.

Оформление внешнего вида будет напрямую зависеть от вашей текущей темы. Но на всякий случай для полной уверенности в корректности отображения добавьте стили в файл style.css.

 ul.cat-post-bar img {
        float: left;
        height: 50px;/*размер миниатюры*/
        margin-bottom: 11px !important;
        padding: 5px;
        width: 50px;/*размер миниатюры*/
    }
    ul.cat-post-bar li {
        clear: both;
        margin: 0;
        overflow: hidden;
    }
    ul.cat-post-bar li a:hover {
        text-decoration: underline;
    }
    ul.cat-post-bar .title{
            width:135px;
            float:left;
            padding:8px 5px 5px 0px;
    }

Вот и все. Если появляются вопросы, то смело задавайте их в комментариях.

Автор, он же Андрей, он же Admin, он же WordSmall

Лентяй-любитель, окончил высшую школу безделья с многочисленными знаками отличия. Создатель этого небольшого «чудо-блога» о еще более «чудном» контенте.

E-mail Google+ Twitter
Комментариев: 10
  • primandrej

    Добрый день. Подскажите, что добавить в код, чтобы второй строкой после названия поста выводились таксономии: Категория и теги. (не ссылки, а просто для информации)

    • WordSmall

      День добрый. Воспользуйтесь кодам из этой статьи wordsmall.ru/plaginy-dlya... -i-bez-nego.html просто уберите рандом &orderby=rand

    • WordSmall

      А метки с помощью функции get_the_tags

      <?php $posttags = get_the_tags(); if ($posttags) { foreach($posttags as $tag) { echo $tag->name . ' '; } } ?>

  • ElenaA

    Здравствуйте, Андрей. Извините за примитивный вопрос, но я не разбираюсь в php. Что нужно поменять в коде из Шага 1, чтобы выводились записи из категории article?

    • WordSmall

      Здравствуйте! Просто подставьте ID своей категории вот здесь cat=8. Найти его можно в разделе «Записи-Рубрики» кликнув по нужной рубрики, и в адресной строке его увидите. Выглядит примерно так taxonomy=category&tag_ID=2.

  • ElenaA

    Андрей, спасибо, все вывелось! Но в очень странном виде. До вставки кода в стили перед каждым названием записи было по 2 маркера списка подряд, вместо одного. После вставки кода один из маркеров перескочил на конец предыдущей строки. Подскажите, пожалуйста, как убрать?

    • WordSmall

      Там стоит тег <br/> перенос строки, может поэтому. А лучше посмотреть исходный код, что там. Если можете, покажите сайт, посмотрю, что там.

  • ElenaA

    Андрей, спасибо!

    • WordSmall

      Не за что. Так как у вас нет миниатюр, то эту строчку удалите <a href="<?php the_permalink() ? rel="nofollow">"><?php echo get_the_post_thumbnail( $post->ID, 'thumbnail'); ?></a>. И из стилей удалите ширину width:135px;.

  • ElenaA

    Спасибо огромное, теперь все отлично!

Добавить комментарий
bold quote code