Выводим вручную похожие записи в Вордпресс с помощью плагина ACF
Иван Данилин

Иван Данилин

Fullstack WordPress Developer

То есть клиент хотел сам указывать какие записи на его взгляд являются похожими. Путей решения задачи масса, но существует одно очень простое и удобное в плане юзабилити решение с помощью популярного плагина Advanced Custom Fields (ACF). На выходе мы получим очень простой в использовании блок, в котором пользователь сможет выбрать похожие записи.

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

Итак, решение задачи очень простое: нам нужно лишь настроить плагин ACF и добавить несколько строчек кода в файл single.php вашей активной темы.

ШАГ 1 — Установка и настройка плагина ACF

1. Установите стандартным образом плагин Advanced Custom Fields и перейдите в его настройки.
2. В группах полей нажмите кнопку «Добавить новую».
3. В Ярлык поля введите его название. Например, «Материалы по теме». Имя поля, к примеру, «related_posts», тип поля: «Взаимоотношение».

Остальное сделайте как на скрине:
Выводим вручную похожие записи в WordPress с помощью плагина ACF

После чего нажмите кнопку «Опубликовать»

ШАГ 2 — Назначаем похожие записи

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

Выводим вручную похожие записи в WordPress с помощью плагина ACF

В блоке будут выведены все ваши записи, из которых вы можете выбрать на ваш взгляд похожие посты. Используйте для этого кнопки «+» и «-». Также вы можете менять их порядок с помощью простого перетаскивания. Если в предыдущем шаге вы указали вывод миниатюр записей, тогда рядом с похожими записями будут выводиться их миниатюры.

ШАГ 3 — Редактируем single.php

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

<?php 
$posts = get_field('related_posts');
if ($posts) { ?>
    <h3 class="related">Похожие записи</h3>
    <p>
    <?php foreach($posts as $post) { setup_postdata($post); ?>
        <a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?> »</a><br/>
    <?php } //End for each loop
    wp_reset_postdata(); //Restores WP post data ?>
    </p>
    <hr />
<?php } //End if ?>

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

<?php 
	if ( function_exists ("has_post_thumbnail") && has_post_thumbnail() ) { 
		the_post_thumbnail ('thumbnail'); 
	} 
?>

С референсом функции the_post_thumbnail() вы можете ознакомиться в соответствующем разделе WordPress Codex.

  1. Не работает вывод (
  2. Интересное решение. Как бы автоматизировать процесс подбора подходит записей?
    Можно ли в YARPP сделать так, чтобы он учитывал и пользовательские поля?
  3. здравствуйте. почему то выводит название текущей страницы и ссылку тек страницы
  4. Здравствуйте! Спасибо за информацию! Скажите можно ли вывести таким образом товары (product). Именно с этим кодом не получается. Что нужно изменить в коде для вывода товаров таким же способом?
    • Добрый день! Теоретически — можно. «Тип записи» выбираем Product, а не Post. Код вставляем не в single.php, а в single-product.php
  5. Спасибо огромное! Это то, что я искал! Замечательная статья! Добавил сайт в закладки!
  6. Здравствуйте. Прочитал Вашу статью, но меня интересует одна деталь. Я решил воспользоваться дополнительным полем Advanced Custom Fields. В редакторе оно появилось все нормально, все работает, но вот в чём загвозка. Оно начинает работать с новыми статьями, а как сделать чтоб они работали уже в опубликованных статьях? Если Вы мне поможете я опишу проблему поподробней. Заранее спасибо!