Два способи виведення схожих записів вордпресс за допомогою коду

Як вивести схожі записи в 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
Додати коментар