Добрый день всем на wmbn.ru! Сегодняшний пост будет посвящен моим изучением кода WordPress, хотя нет, малую часть от всего функционала кода. Как человек не лишенный качества любопытства и новизны, я всегда стараюсь изучить то, что попадется мне на руки. Так было с Drupal, Linux, коснулось WordPress частично и все еще продолжается. В частности речь пойдет о том, как вывести записи на страницу с помощью кода (случайные статьи, похожие и из одной рубрики) и плагина.

Как вывести записи с помощью кода и плагина

Причина установки такого кода, или плагина — внутренняя оптимизация блога (перелинковка страниц). Благодаря такому подходу можно увеличить поведенческие показатели сайта — количество просмотренных страниц и время просмотра сайта. Так же такая перелинковка хорошо сказывается в глазах поискового робота — так как он переходит по ссылкам, то в данном случае вероятность того, что он пройдет по всем страницам не растратив время попросту уменьшается. Тут конечно стоит учитывать наличие файла robots.txt и карту сайта в формате xml (sitemap.xml), а в совокупности с похожими записями такой подход будет только на пользу блога.

Вывод записей с помощью кода query_posts на WP

Первым делом разберем как вывести похожие и случайные записи на страницу с помощью кода. Принцип несложный, особенно если вы имеете хоть какое-то представление о WordPress и как он работает (в плане кода). Если же нет, то тоже не страшно, так как для вывода записей знаний особых не пригодится. Объясню вкратце сам принцип вывода похожих записей (а потом уже случайных). В структуре WordPress есть много файлов — среди них составляющие структуру шаблонов, панели администратора, функций и запросов. Вот последний файл для меня показался интересным (query.php) — сказать что я его прямо так сразу понял, нет…я искал на сайте WordPress различную документацию (жаль, но на английском языке, хотя знание языка вроде бы хватило для понимания).

Документация к WordPress

Нашел одну документацию в кодексе и начал ее изучать — касалось темы query_posts. Убив одну выходную ночь на изучение и перевод (переводчиком не пользуюсь из принципа) немного понял суть и назначение данного запроса и как им пользоваться, чтобы вывести нужные посты на странице.

Оказалось, что код для вывода похожих записей с одной рубрики уже находился в WordPress, конечно не полностью, но были предпосылки. Начнем постепенно разбираться с тем, что предоставил WordPress и по ходу понимания немного переделывать запросы. Query_post является одним из нескольких запросов для подключения к базе данных, с помощью которой можно предоставлять записи в разном виде с разными критериями. Запрос query_posts имеет следующую обобщенную структуру:

<?php query_posts (); ?>

Где в скобках указываются параметры подключения или условия, к примеру выбрать какие рубрики использовать для выборки записей или сколько их выводить. Было интересно узнать, что с помощью данного запроса можно настраивать функцию Читать далее, как и сколько постов выводить на страницу, но для меня в первую очередь интересовал способ вывести похожие записи из одной рубрики с помощью кода query_posts. Стоит заметить, что данный запрос использует цикл The Loop, который выводит записи на страницу блога в пределе установленных настройках WordPress. В данном случае проверяется наличие постов и если ответ положительный, то они будут грузиться до тех пор, пока не появится последняя запись на странице, после чего они выводятся в отдельном блоке div.

Вывод похожих записей из одной категории при помощи кода запроса query_posts в CMS WordPress

Приступим к выводу похожих, а так же записей из одной рубрики. Все действия происходят с помощью запроса query_posts — можно настроить множество параметров и свойств, чтобы манипулировать выводимыми данными, а также присвоить блоку свой стиль, что вряд ли получится сделать для плагина — фон для блока Это интересно или Рекомендую прочесть присваивал стиль от маркированного списка, а создать для него новый…было проще изменить фон старого на белый. Получается еще одно небольшое преимущество над плагином (первое — нагрузка на сервер).

Первый пример — требуется вывести какие-либо записи из одной категории. Такой подход применим для статичных страниц, особенно если нужно построить удобный блок навигации (страницу), но так же его можно использовать на статьях, в особенности если требуется продвинуть внутри сайта определенную рубрику. Вот код для вывода записей из определенной рубрики:

<?php query_posts(‘cat=5&showposts=5′); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<ul>
<li><a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
</ul>
<?php endwhile; endif; ?>

Первая строка отвечает за вывод 5 записей из рубрики, ID которой равно 5. Затем следует тот самый цикл The loop — проверяется наличие постов, а затем происходит их вывод на страницу или в блок. Что мне показалось подозрительным — процесс повторяется два раза на каждой странице, то есть сначала загружаются основные записи, затем снова происходит тот же процесс, но уже с другими параметрами. Это вряд ли можно рассчитывать как недостаток — процесс происходит тот же, но с другими параметрами.

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

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

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

Затем идет стандартный вариант, т.е. расположить блок с кодом таким образом, чтобы он был внизу страницы или записей. Можно так же разделить нижнюю часть на блоки и с каждой выводить по несколько записей с одной рубрики. Это можно сделать в файле footer.php или page.php.

Установка кода вывода записей из рубрики с помощью кода

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

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

<?php query_posts(‘posts_per_page=7′); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
   <ul>
     <li><a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
   </ul>
<?php endwhile; endif; ?>

Первая строка создает запрос на вывод 10 похожих записей, а далее тот же цикл загрузки The Loop. Заголовки будут выводится в виде списка, так что можно или изменить готовый стиль, либо создать новый блок с классом, в котором можно создать свой готовый шаблон для определенного блока. Такой код (блок) обычно используют для показа сразу после основного поста.

Использование кода в качестве блока похожих записей

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

<?php query_posts(‘orderby=rand&showposts=7&cat=2′); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<ul>
<li><a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
</ul>
<?php endwhile; endif; ?>

В данном случае будут выведены 3 случайно выбранных поста из рубрики, ID которой 2. Ниже уже идет построение списка постов. Можно заменить первую строку, чтобы все записи выводились из всех рубрик:

<?php query_posts('orderby=rand&showposts=10'); ?>

Вывод похожих и случайных записей с помощью плагина WordPress Related Posts и Random Posts

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

Плагин WordPress Related Posts — выводит похожие записи в конце каждого поста. Установка его тоже проста — пройдите на страницу установки в меню Плагины — Добавить новый. Затем в поисковой строке введите название плагина и нажмите Поиск. Среди результатов выберите нужный, установите и активируйте его. Далее нужно настроить его — в меню Параметры найдите созданный пункт Related Posts и перейдите на него. Свойств не так уж много, но зато самое основное.

Настройка плагина Related Posts

В Related Posts Title пишем тот заголовок, который будет показан, когда найдутся похожие записи к посту, а ниже в каком теге он будет отображаться. В поле Maximum Number пишем максимальное количество выводимых постов в блок, а в Exclude(category IDs) те рубрики (их ID), которые не будут отображены в блоке. В Other Setting выбираем показывать количество комментариев к статье, дату публикации или нет. Auto Insert Related Posts? — автоматически добавлять похожие записи, данный пункт по умолчанию уже будет включен. Если нужно отображать схожие посты в RSS или подписке по почте, то данный пункт тоже можно выбрать.

Если похожих постов не нашлось, то в блоке No Related Post Setting в Display выбираем что показывать — Надпись, Случайные или популярные посты, а ниже заголовок для блока. Еще ниже в Thumbnail Setting помечаем пункт, если нужно показать миниатюры (изображения).

Второй плагин выводит случайные записи в сайдбаре блога — Random Posts. Я даже удивился его настройкам — чтобы представить небольшую информацию на странице сделали столько свойств. Думаю следует рассмотреть более востребованные на мой взгляд:

  1. Number of posts to show — количество выводимых постов;
  2. Show static pages? — показывать статические страницы, из вариантов только посты, совместно и только страницы;
  3. В Output Settings настраиваем внешний вид блока с помощью тегов, которые приведены на странице;
  4. Настройки фильтра вывода Filter позволяют сделать сортировку;

Далее заходим в Виджеты (меню Внешний вид) и добавляем Random Posts в сайдбар, задав для него заголовок и максимальное количество записей.

На этом все, хотелось бы добавить один нюанс при использовании query_posts — на некоторых шаблонах записи либо выводились, но в очень кривом стиле, как будто я им не присвоил свой стиль для блока, либо не выводились вообще, ссылаясь на ошибку. Так что тем, кто не силен в коде и редактировании шаблонов можно посоветовать установку плагина WordPress Related Posts — настроил и забыл так сказать.

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

  1. Orcinus Orca

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

    1. writer

      Была мысль возродить старый движок…точнее набор кода — больше пока это не назовешь, но думаю только после того, как в вуз поступлю, то тогда начну его возрождать, чтобы по более вникнуть во все тонкости PHP и MySQL

  2. Виталий

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

  3. West Blogger

    Такая плюшка полезная. Только не совсем догнал, неужели в вордпресс есть код, который находит похожие статьи ? Или он просто выводит последние 5 из категории?

  4. writer

    West Blogger Кода нет, только запрос, которым можно манипулировать, добавляя в него различные параметры. А насчет похожести — результаты списка совпадают с плагином, поэтому написал — так или иначе связаны с записью)))

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>