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

16 января 2012 / Комментариев нет

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

Я бы совсем не стал проводить сравнения между этими системами управления, поскольку каждая из них обладает необходимым функционалом для решения задач по созданию и поддержке сайтов. Тем не менее здесь я буду уделять больше внимания WordPress, что вовсе не говорит о превосходстве над другими CMS и Joomla в частности.

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

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

Для этого: скачивает файл темы index.php, который формирует главную страницу и в необходимое место вписываем фрагмент кода:

<ul> <!--?php $posts = get_posts("numberposts=10&amp;amp;amp;amp;amp;orderby=post_date&amp;amp;amp;amp;amp;order=DESC&amp;amp;amp;amp;amp;category=1"); foreach($posts as $post) : ?-->
	<li><a href="<?php the_permalink(); ?>"><!--?php the_title(); ?--></a></li>
<!--?php endforeach; ?--></ul>

Здесь разберем значения первой строки:
numberposts=10 — количество записей категории для отображения в блоке;
orderby=post_date — сортировка по дате, то есть первым будет самый свежий пост рубрики;
category=1 — ID категории для показа постов. Это именно то значение, которое определяет из какой категории выводить 10 свежих записей.
Узнаем ID категории. Для этого заходим в админ.панель и выбираем меню «Рубрики»:

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

Далее у интересующей рубрики наводим курсор на пункк «Редактировать»:

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

Слева внизу окна браузера видим ссылку на редактирование рубрики:

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

В этой строке в конце видим ID этой рубрики — _ID=39.
Указываем этот номер во фрагменте выше, сохраняем шаблон, обновляем на сервере. Все работает.

Ещё один способ:

<?php $posts = get_posts ("category=4&amp;amp;amp;orderby=date&amp;amp;amp;numberposts=3"); ?>
<?php if ($posts) : ?>
<?php foreach ($posts as $post) : setup_postdata ($post); ?>
    <div class="block">
        <div class="name">
            <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
        </div>
    </div>
<?php endforeach; ?>
<?php endif; ?>

Комментариев нет

* - обязательные поля

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