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

В данной статье мы хотим поделиться с вами простым методом, который особенно полезен для многофункциональных сайтов, новостных порталов и других источников. Если ваш сайт содержит множество рубрик и категорий, то вывод последних статей из самых важных разделов станет удобным решением для показа полного ассортимента контента. Мы представим пример кода, который легко вставить в боковую панель (сайдбар) вашего сайта, но вы также можете использовать его в других местах по вашему желанию.

Шаг 1-й.

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

cat=8 — тут указать ID категории

<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;
    }
10 комментариев
  1. Добрый день. Подскажите, что добавить в код, чтобы второй строкой после названия поста выводились таксономии: Категория и теги. (не ссылки, а просто для информации)

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

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

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

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

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

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

    1. Не за что. Так как у вас нет миниатюр, то эту строчку удалите

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *