Вывод записей из нужной категории

Зачастую, на сайте, который использует wordpress, необходимо вывести записи из определенной категории.
Сделать это можно, добавив в шаблоне небольшую конструкцию.

в нижеприведенном коде мы задаем команду на вывод из категории «ID 1» 3-х последних записей в виде списка, где будет отображаться дата записи и заголовок-ссылка на запись.

<ul>
<?php $recent = new WP_Query("cat=1&showposts=3"); while($recent->have_posts()) : $recent->the_post();?>
<li><span class="date"><?php the_time('d/m/Y') ?></span>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 
</li>
<?php endwhile; ?>
<?php	wp_reset_query(); ?></ul>

данный код можно немного модифицировать (добавить надо orderby=rand) и показывать случайный набор из 3-х записей той самой категории.

<ul>
<?php $recent = new WP_Query("orderby=rand&cat=1&showposts=3"); while($recent->have_posts()) : $recent->the_post();?>
<li><span class="date"><?php the_time('d/m/Y') ?></span>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 
</li>
<?php endwhile; ?>
<?php	wp_reset_query(); ?></ul>


2 комментария

  1. Анатолий пишет:

    Спасибо за рекомендации, Alex Xobotoff. К сожалению, не нашел русского имени автора публикации. Все изложено четко и понятно. Но не могли бы Вы подсказать, какой код нужно добавить к описанным здесь, чтобы исключить показ в этих списках текущей записи, т.е. той, на странице которой будет фактически расположен данный код в момент показа записей (как у Вас на блоге). В противном случае возникает ситуация, когда запись (через ссылку в списке записей) ссылается сама на себя.

    • Alex Xobotoff пишет:

      Вышеописанное чаще всего применяется при выводе на главной странице сайта.

      Если же нужно сделать вывод похожих записей, то в файле шаблона single — в нужном месте вставляем такой код:

       
      <?php
      $categories = get_the_category($post->ID);
      if ($categories) {
          $category_ids = array();
          foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
          $args=array(
              'category__in' => $category_ids,
              'post__not_in' => array($post->ID),
              'showposts'=>5 // Количество записей для показа.
          );
          $my_query = new wp_query($args);
          if( $my_query->have_posts() ) {
              echo '<h3>Похожие статьи</h3><ul>';
              while ($my_query->have_posts()) {
                  $my_query->the_post();
              ?>
                  <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка: <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
              <?php
              }
              echo '</ul>';
              
          }
      }
      wp_reset_query();
      ?>
      

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