Как в WordPress выводить записи по рубрикам

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

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

Рекомендуем к прочтению – “Рубрики WordPress: создание, редактирование, удаление”

Вывод записей: преимущества и недостатки плагинов

Такие дополнения обладают большим количеством важных функций, таких как:
  • вывод списка по рубрике, категории, тегу;
  • настраиваемый дизайн вывода;
  • использование AJAX запросов;
  • простота в использовании;
  • использование shortcode.
  • вставка в любом месте

!Важно! Перед установкой таких плагинов стоит проверять их на совместимость с установленной темой. В противном случае ожидаемого эффекта добиться не удастся.

К недостаткам плагинов какие бы маленькими и скоростными они не были следует отнести:

  • наличие дополнительно подгружаемого кода;
  • дополнительные таблицы стилей;
  • дополнительные JS скрипты;
  • возможная несовместимость с темой и разметкой.

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

По теме статьи – “Как определить ID поста, страницы и рубрики в WordPress”

Как обойтись без плагина: инструкция

Даже не имея опыта в программировании, следуя нашей инструкции вы всегда сможете самостоятельно в нужном месте создать «разводящую» страницу.

Редакция сайта рекомендует –  “Как пользоваться рубриками в WordPress”

Итак, приступим…
Для начала зайдем во вкладку ВНЕШНИЙ ВИД → РЕДАКТОР консоли WordPress.

03
02
01

В правой колонке будут перечислены Файлы темы. Ищем нужный нам тэмплэйт и открываем его на редактирование путем клика по файлу. В этом файле описана структура страницы для вывода контента. Подробно останавливаться на системе разметки, в данном случае мы не будем, да и она может отличаться в зависимости от темы. Обратим внимание только на основные функции, которые заключены в php теги.
В самом начале подключаем требуемые нам объекты для работы.
В самом начале документа, функцией get_header(); мы получаем сформированную шапку сайта. Чуть дальше функция theme_breadcrumb() ; отвечает за вывод крошек (отображение полного пути до содержимого страницы относительно главной).
Далее следует требуемый нам php код.
В самом начале подключаем требуемые нам объекты для работы.

<?php
global $paged, $wp_query, $wp;
?>

где:

  • $paged — текущая страница
  • $wp_query – объект работы с базой данных
  • $wp — объект системы
<?php
if (empty($paged) ) {

if ( !empty( $_GET[‘paged’] ) ) { $paged = $_GET[‘paged’];}

elseif ( !empty($wp->matched_query) && $args = wp_parse_args($wp->matched_query) ) {

if (!empty( $args[‘paged’] ) ) {$paged = $args[‘paged’];}

}

if ($paged) $wp_query->set(‘paged’, $paged);

} ?>

Условие if (empty($paged) ) проверяет переменную на пустоту. И в случае, если она пустая, то пытаемся получить номер страницы из GET запроса и передать ее в переменную. Далее нам нужно установить соединение с базой данных, для чего мы создаем экземпляр класса работы с базой данных new WP_Query();. В дальнейшем при работе с БД мы будем обращаться именно к нему. На всякий случай очищаем объект $wp_query который будет хранить соединение с базой.

Для улучшения сайта – “Метки и рубрики в WordPress – не одно и то же”

<?php
$wp_query = null;
$wp_query = new WP_Query();
?>

В переменную $id_text занесем содержимое страницы, если таковое имеется и необходимо для вывода.

<?php
$id_text = the_content();
?>

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

<?php
ID_Страницы = (int) get_the_ID(); // получаем ID сраницы
?>

Сопоставляем ID страниц и ID рубрик

<?php
switch (ID_Страницы) {
case ID_Страницы: $cat = ‘cat=ID_рубрики’; break;

case ID_Страницы: $cat = ‘cat=ID_рубрики’; break;
} ?>

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

<?php
switch (ID_Страницы) {
case ID_Страницы: $wp_query->query( “cat=ID_рубрики&post_type=post&paged=”.$paged ); break;

case ID_Страницы: $wp_query->query( “cat=ID_рубрики&post_type=post&paged=”.$paged ); break;
} ?>

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

<?php
if ( have_posts() ) {
while ( have_posts() ) { // начало цикла
the_post();
get_template_part( ‘content’, get_post_format() ); // получаем элемент списка
} } echo $textID; // вывод содержимого страницы, если нужно вывести перед списком записей, разместите эту строку выше 17 ?>

Внимание! Во избежание ошибки связанной с циклом необходимо обязательно убедиться в наличии записей путем проверки наличия записей условием if ( have_posts() )

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

Объясняем – Чем записи WordPress отличаются от страниц”