Чтобы пользователи оставались на сайте, необходимо предложить им не только хороший текстовый контент и привлекательный дизайн, но и обеспечить удобство пользования функциями. А для этого специалисты по сайтостроению должны иметь хороший инструментарий. Так, очень часто требуется сделать вывод записей по какой-либо категории на странице. Для системы WordPress существует множество различных плагинов, позволяющих осуществить данное действие.
Рекомендуем к прочтению – “Рубрики WordPress: создание, редактирование, удаление”
Вывод записей: преимущества и недостатки плагинов
Такие дополнения обладают большим количеством важных функций, таких как:
- вывод списка по рубрике, категории, тегу;
- настраиваемый дизайн вывода;
- использование AJAX запросов;
- простота в использовании;
- использование shortcode.
- вставка в любом месте
!Важно! Перед установкой таких плагинов стоит проверять их на совместимость с установленной темой. В противном случае ожидаемого эффекта добиться не удастся.
К недостаткам плагинов какие бы маленькими и скоростными они не были следует отнести:
- наличие дополнительно подгружаемого кода;
- дополнительные таблицы стилей;
- дополнительные JS скрипты;
- возможная несовместимость с темой и разметкой.
Перед установкой плагина обязательно следует обратить внимание на систему разметки. Если ваша тема не использует Bootstrup, то ее наличие в плагине может привести к существенному замедлению вывода страницы с плагином.
По теме статьи – “Как определить ID поста, страницы и рубрики в WordPress”
Как обойтись без плагина: инструкция
Даже не имея опыта в программировании, следуя нашей инструкции вы всегда сможете самостоятельно в нужном месте создать «разводящую» страницу.
Редакция сайта рекомендует – “Как пользоваться рубриками в WordPress”
Итак, приступим…
Для начала зайдем во вкладку ВНЕШНИЙ ВИД → РЕДАКТОР консоли WordPress.
В правой колонке будут перечислены Файлы темы. Ищем нужный нам тэмплэйт и открываем его на редактирование путем клика по файлу. В этом файле описана структура страницы для вывода контента. Подробно останавливаться на системе разметки, в данном случае мы не будем, да и она может отличаться в зависимости от темы. Обратим внимание только на основные функции, которые заключены в 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 отличаются от страниц”