Вывод похожих записей WordPress

Рад приветствовать читателей моего блога exrpomtom.ru!

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

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

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

Вывод похожих записей WordPress плагином

 

Так вот, для реализации функции вывода похожих записей блога первым способом воспользуемся плагином под названием Related Posts:

Вывод похожих записей WordPress

Устанавливаем, активируем данный плагин. Кратко пробежимся по настройкам, для чего в админ-панели выбираем появившийся после активации плагина пункт Related Posts:

Вывод похожих записей WordPress

Итак, в настройках нам предлагается следующее:

Basic Settings (основные настройки):

Related Posts Title — название блока вывода похожих записей. Я прописал «Похожие записи».

Number of Posts — количество записей, которое будет выводится в блоке. Я оставил значение по умолчанию, то есть 5.

Theme Settings (настройки темы):

Enable Themes* — чекбокс, поставив галочку в котором вам предоставляется возможность выбора внешнего вида отображения блока вывода похожих записей. Лично я придерживаюсь в данном случае минимализма и выбираю самый простой вариант без показа миниатюр статей, для чего выбираю пункт Plain (ручная настройка) и ниже в разделе Customize снимаю все галочки с чекбоксов:

Вывод похожих записей WordPress

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

Вывод похожих записей WordPress

В разделе Theme Settings остался следующий блок:

Вывод похожих записей WordPress

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

 Other Settings (другие настройки):

Вывод похожих записей WordPress

Exclude these Categories — исключить следующие категории. Если отображать статьи какой-либо из категорий при выводе похожих записей вы не желаете, то просто отметьте их галочками в данном пункте настроек.

Auto Insert Related Posts — автоматическая вставка блока похожих записей в шаблон. Также можно вставить код:

1
<!--?php wp_related_posts()?-->

в любой файл вашего шаблона WordPress, где вы хотите чтобы блок похожих записей отображался.

Display Related Posts in Feed — отображение похожих записей в rss рассылке подписчикам вашего блога.

Turn statistics on* — вести статистику, которую можно видеть в самом верху в настройках плагина:

Вывод похожих записей WordPress

Support us (show our logo) — показывать логотип производителя плагина, своеобразная поддержка авторов. Я данную функцию не активировал.

На этом настройка плагина Related Posts завершена, сохранив изменения, смотрим результат. Вот такой блок появился после каждой статьи моего блога:

Вывод похожих записей WordPress

Таким образом, мы реализовали вывод похожих записей WordPress с помощью плагина Related Posts.

Переходим ко второму варианту:

Вывод похожих записей WordPress без плагина

На самом деле, по моему мнению, данный способ даже проще, нежели первый, по крайней мере при определенных навыках обращения с кодом html и php.

Что же необходимо сделать? А сделать нужно всего лишь два шага.

Шаг первый: вставка кода в файл single.php вашей темы.

Берем следующий код (похожие статьи по категориям):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<div class="sample">
<h3>Похожие статьи:</h3>
<!--?php $categories = get_the_category($post--->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'showposts'=>5, // Number of related posts that will be shown.
'caller_get_posts'=>1
);
// Rest is the same as the previous code
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '
<ul>
<ul>';</ul>
</ul>
<ul>
<ul>while ($my_query->have_posts()) {</ul>
</ul>
<ul>
<ul>$my_query->the_post();</ul>
</ul>
<ul>
<ul>?></ul>
</ul>
<ul>
<ul><!--?php <br ?-->}</ul>
</ul>
<ul>echo '</ul>
';
}
wp_reset_query();
}
?></div>

или этот код для случая вывода похожих статей по меткам:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<div class="sample">
<h3>Похожие статьи:</h3>
<ul>
<ul>
<ul><!--?php //for use in the loop, list 5 post titles related to first tag on current post $tags = wp_get_post_tags($post--->ID);</ul>
</ul>
</ul>
<ul>
<ul>if ($tags) {</ul>
</ul>
<ul>
<ul>$first_tag = $tags[0]->term_id;</ul>
</ul>
<ul>
<ul>$args=array(</ul>
</ul>
<ul>
<ul>'tag__in' => array($first_tag),</ul>
</ul>
<ul>
<ul>'post__not_in' => array($post->ID),</ul>
</ul>
<ul>
<ul>'showposts'=>5,</ul>
</ul>
<ul>
<ul>'caller_get_posts'=>1</ul>
</ul>
<ul>
<ul>);</ul>
</ul>
<ul>
<ul>$my_query = new WP_Query($args);</ul>
</ul>
<ul>
<ul>if( $my_query->have_posts() ) {</ul>
</ul>
<ul>
<ul>while ($my_query->have_posts()) : $my_query->the_post(); ?></ul>
</ul>
</div>

Код ‘showposts’=>5 отвечает за количество выводимых похожих записей, можно задать любое другое число, на ваше усмотрение.

Вставляем выбранный вами из этих двух вариантов код в файл single.php внутрь конструкции

1
<div id="content"></div>

перед закрывающим тегом

1
</div>

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

Не забывайте сохранять изменения.

Шаг второй: настройка стилей CSS. Здесь под каждый шаблон настройки могут значительно варьироваться, так что универсальный код привести не представляется возможным. Я приведу набор стилей CSS для своей темы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.sample {
padding-top: 10px;
}
 
.sample h3{
font-size: 19px;
color: #3673be;
}
 
.sample ul li {
margin-top: 10px;
margin-bottom: 10px;
list-style: url(images/sidebar_arrow.png) inside;
color: #3bb45b;
font-size: 14px;
}

Результат на картинку ниже:

Вывод похожих записей WordPress

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

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

С уважением, Владимир Денисов!

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

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