Два способа вывода похожих записей вордпресс с помощью кода

Как вывести похожие записи в WordPress без плагинов

Функция сортировки похожих статей по меткам (тегам)

Многие используют теги или метки, которые служат для связки статей, но при этом записи могут находиться в разных категориях. Вставляем этот код в файл single.php под статьей.

Совет! Шаблоны у всех разные, экспериментируйте и если не получится с первого раза вставить код в желаемое место, то просто пробуйте его вставить в другое. Но не забываем сохранять то что правим, чтоб потом, вдруг что, восстановить все на место.

01<div class="similar_records">
02<h3>Похожие записи:</h3>
03<?php $tags = wp_get_post_tags($post->ID);
04if ($tags) {
05 $tag_ids = array();
06 foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
07 $args=array(
08 'tag__in' => $tag_ids, // Сортировка производится по тегам
09 'post__not_in' => array($post->ID),
10 'showposts'=>5 // Цифра означает количество выводимых записей
11 );
12 $my_query = new wp_query($args);
13 if( $my_query->have_posts() ) {
14 echo '<ul>';
15 while ($my_query->have_posts()) {
16 $my_query->the_post();
17 ?>
18 <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
19 <?php
20 }
21 echo '</ul>';
22 }
23 wp_reset_query();
24 }
25 ?></div>

Если в коде ничего не менять, то вывод похожих статей будет будет осуществятся по тегам, но с учетом даты, начиная с самих свежих. Чтобы статьи выводились в случайном порядке необходимо добавить строчку:

'orderby'=>rand,

Прописываем после 9 строки:

'tag__in' => $tag_ids,

Также не лишнем будет добавить еще 1 условие:

'caller_get_posts'=>1,

Оно запрещает повторение одной и той же ссылки. Например, у Вас на блоге еще небольшое количество статей, а вы в коде указали вывод по 10 ссылок:

'showposts'=>10,

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

В итоге у нас должен получится такой код:

01<div class="similar_records">
02<h3>Похожие записи:</h3>
03<?php $tags = wp_get_post_tags($post->ID);
04if ($tags) {
05 $tag_ids = array();
06 foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
07 $args=array(
08 'tag__in' => $tag_ids, // Сортировка происходит по тегам (меткам)
09 'orderby'=>rand, // Добавляем условие сортировки рандом (случайный подбор)
10 'caller_get_posts'=>1, // Запрещаем повторение ссылок
11 'post__not_in' => array($post->ID),
12 'showposts'=>5 // Цифра означает количество выводимых записей
13 );
14 $my_query = new wp_query($args);
15 if( $my_query->have_posts() ) {
16 echo '<ul>';
17 while ($my_query->have_posts()) {
18 $my_query->the_post();
19 ?>
20 <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
21 <?php
22 }
23 echo '</ul>';
24 }
25 wp_reset_query();
26 }
27 ?></div>

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

Функция сортировки похожих статей по рубрикам (категориям)

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

01<div class="similar_records">
02<h3>Похожие записи:</h3>
03<?php $categories = get_the_category($post->ID);
04if ($categories) {
05 $category_ids = array();
06 foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
07 $args=array(
08 'category__in' => $category_ids, // Сортировка производится по категориям
09 'orderby'=>rand, // Условие сортировки рандом
10 'post__not_in' => array($post->ID),
11 'showposts'=>5, //Количество выводимых записей
12 'caller_get_posts'=>1); // Запрещаем повторение ссылок
13 $my_query = new wp_query($args);
14 if( $my_query->have_posts() ) {
15echo '<ul>';
16 while ($my_query->have_posts()) {
17 $my_query->the_post();
18 ?>
19 <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
20 <?php
21 }
22 echo '</ul>';
23 }
24wp_reset_query();
25}
26?></div>

Я сразу включил условие сортировки рандом, но если вы хотите установить сортировку по датам, то просто уберите строчку:

'orderby'=>rand,

Напоминаю, что код надо вставить в файл single.php после статьи. Обычно его вставляют сразу после скриптов социальных кнопок, но если возникнут сложности, то пожалуйста задавайте вопросы в комментариях.

Источник: https://seo-mayak.com/

Оценить статью
Новости IT
Добавить комментарий