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

Добрый день друзья, подскажите пожалуйста, как мне реализовать следующую задачу:
требуется виджет вывод последних записей определенной рубрики в боковой колонке.

должно выглядеть примерно так:

Боковая панель 1
__________
|Новости |
| 1 новость |
| 2 новость |
| 3 новость |
|_________|

__________
|Статьи |
| 1 статья |
| 2 статья |
| 3 статья |
|_________|

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

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

Вот функция, которая выводит избранный контент:

<?php query_posts('cat=2&showposts=3'); ?>
<ul>
  <?php while (have_posts()) : the_post(); ?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  <?php endwhile;?>
</ul>

где 2 это ID номер Вашей избранной рубрики, а 3 это количество записей из этой рубрики, которое будет выводиться.

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

Подобная конструкция может быть применена и для статей, если они у вас тоже выводятся в какой-нибудь рубрике. Если у вас статьи публикуются в качестве страниц, а не постов, то запись для вывода статей в этом случае будет иметь другой вид.

Был для такого дела мощный плагин по имени SideBlog.

Был для такого дела мощный плагин по имени SideBlog.

Спасибо, Юрий Дмитриевич. Использовать плагин для новичков будет, конечно, проще.

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

<?php query_posts('cat=2&showposts=3'); ?>
<ul>
  <?php while (have_posts()) : the_post(); ?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  <?php endwhile;?>
</ul>

Я вставил данный код в виджет для добавления произвольного текста, но ничего не заработал к сожалению( отборазился лишь пустой виджет

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

А вот, когда я вставил всю эту конструкцию в код сайдбара собственного блога, отредактировав код файла сайдбара, то все получилось и отлично работает!

Я вставлял следующий код:

<div id="sidecats">
<h3>Новое в Плагинах</h3>
<?php query_posts('cat=4&showposts=3'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
</div>

где <div id="sidecats"> – один из стилей, используемых в моем сайдбаре, в вашем случае вы должны заменить его на один из своих стилей. Ну, и соответственно, заменить номер рубрики на номер той, которую вы хотите выводить.

А не пробовали использовать не текстовый виджет, а специальный, обученный выполнять php-скрипты? 😉

А не пробовали использовать не текстовый виджет, а специальный, обученный выполнять php-скрипты? ;)

Не знаю. Но виджета, который бы разрешал добавлять "Произвольный текст или PHP-код" в шаблоне моей темы нет, а виджеты "Рубрики", "Ссылки" или "Страницы", которые, я уверен, поддерживают PHP-код, не рассчитаны на добавление произвольного PHP-кода.

Но виджета, который бы разрешал добавлять "Произвольный текст или PHP-код" в шаблоне моей темы нет

А такое удовольствие только плагинами делается. Например, http://wordpress.org/extend/plugins/php-code-widget/

[quote=Калиостро]Но виджета, который бы разрешал добавлять "Произвольный текст или PHP-код" в шаблоне моей темы нет

А такое удовольствие только плагинами делается. Например, http://wordpress.org/extend/plugins/php-code-widget/[/quote]
Спасибо! Теперь буду знать. Как говорится, век живи – век учись! 🙂

Спасибо большое, оба способа мне подходят отлично!!! 🙂

Возникла проблема, воспользовался плагином http://wordpress.org/extend/plugins/php-code-widget/, и вашим кодом Калиостро
<?php query_posts(‘cat=2&showposts=3’); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
когда вставляю в правый сайт бар все работает отлично, когда в левый, на какую страницу и запись сайта не зайди отображается первая запись и рубрики которую я вставляю в виджет

Потому что "когда в левый", query_posts просто заменяет выбранные при инициализации посты на заказанные в параметрах функции. Правильнее использовать get_posts().

PS Левый/правый значения не имеет, имеет значение порядок выполнения.

а с какими параметрами мне надо указывать гет постс, если мне нужно вывести 3 первых записи из 1 категории

а с какими параметрами мне надо указывать гет постс, если мне нужно вывести 3 первых записи из 1 категории

Ю.Б. же дал ссылку, где все это расписано:

 <ul>
 <?php
 global $post;
 $myposts = get_posts('numberposts=5&offset=1&category=1');
 foreach($myposts as $post) :
   setup_postdata($post);
 ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
 <?php endforeach; ?>
 </ul>

небуду пладить много тем спрошу тут

у меня есть пользовательская post type katalog-rastenii
есть таксономия этой post type klass. Я создал мутку или рубрику rubrika1.

Немогу вывести посты только этой метки/рубрики. ссылка этой метки/рубрики гласит так edit-tags.php?action=edit&taxonomy=klass&tag_ID=250&post_type=katalog-rastenii

вот цикл

<?php
$args = array('post_type' => 'katalog-rastenii', 'taxonomy' => 'klass', 'tag' => 'rubrika1', 'order'=>'ASC', 'posts_per_page'=>'3', 'paged' => get_query_var('paged'));
query_posts($args); ?>

все разобрался спасибо

$args = array(‘post_type’ => ‘katalog-rastenii’, klass’ => ‘rubrika1’, ‘order’=>’ASC’, ‘posts_per_page’=>’3’, ‘paged’ => get_query_var(‘paged’));
query_posts($args); ?>

Anonymous
Отправить
Ответ на: