Многие сайты на WordPress сталкиваются с задачей — показать посетителям связанные записи, чтобы удержать их дольше на сайте и повысить вовлечённость. В этой статье разберём, как создать автоматическое отображение связанных записей в WordPress на основе категорий и тегов без использования громоздких плагинов, а также с применением нескольких популярных плагинов с примерами кода и советами по оптимизации.
Почему важно показывать связанные записи в WordPress
Связанные записи помогают посетителям быстро найти дополнительный релевантный контент, повышают среднее время пребывания на сайте, улучшают внутреннюю перелинковку и SEO. При правильной реализации связанные записи должны быть релевантными, не повторять текущую запись, и иметь аккуратное оформление.
Создание собственного решения на PHP: выбор записей по категориям и тегам
Для начала рассмотрим базовый пример вывода связанных записей на основе категорий и тегов с помощью WP_Query. Такой подход позволяет гибко настраивать параметры и не перегружать сайт лишними плагинами.
Шаг 1. Получаем категории и теги текущей записи
function wpcat_get_related_posts() {
global $post;
$categories = wp_get_post_categories($post->ID);
$tags = wp_get_post_tags($post->ID, array('fields' => 'ids'));
if (empty($categories) && empty($tags)) {
return;
}
$args = array(
'post__not_in' => array($post->ID),
'posts_per_page' => 5,
'ignore_sticky_posts' => 1,
'orderby' => 'date',
'order' => 'DESC',
'tax_query' => array(
'relation' => 'OR',
),
);
if (!empty($categories)) {
$args['tax_query'][] = array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => $categories,
);
}
if (!empty($tags)) {
$args['tax_query'][] = array(
'taxonomy' => 'post_tag',
'field' => 'term_id',
'terms' => $tags,
);
}
$related_posts = new WP_Query($args);
if ($related_posts->have_posts()) {
echo '<div class="wpcat-related-posts"><h3>Похожие записи</h3><ul>';
while ($related_posts->have_posts()) {
$related_posts->the_post();
echo '<li><a href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a></li>';
}
echo '</ul></div>';
wp_reset_postdata();
}
}
Этот код можно вставить в файл single.php или в функции темы, где хотите выводить связанные записи, вызвав wpcat_get_related_posts(). Он автоматически получит категории и теги текущей записи, затем выведет до 5 связанных записей, исключая текущую.
Шаг 2. Добавляем стили и адаптивность
Для аккуратного отображения списка добавьте CSS. Например:
.wpcat-related-posts {
margin-top: 30px;
}
.wpcat-related-posts h3 {
font-size: 1.5em;
margin-bottom: 15px;
}
.wpcat-related-posts ul {
list-style: none;
padding: 0;
}
.wpcat-related-posts li {
margin-bottom: 10px;
}
.wpcat-related-posts a {
text-decoration: none;
color: #0073aa;
}
.wpcat-related-posts a:hover {
text-decoration: underline;
}
Это обеспечит читаемость и приятный внешний вид на любых устройствах.
Использование плагинов для связанных записей и их настройка
Если не хотите писать код, существуют плагины, которые помогут вывести связанные записи с дополнительными функциями. Рассмотрим два популярных варианта.
1. Yet Another Related Posts Plugin (YARPP)
YARPP — один из самых распространённых плагинов для связанных записей. Он автоматически анализирует контент, категории, теги и другие параметры для рекомендации похожих статей.
- Простой интерфейс настройки.
- Вывод в виде списка или миниатюр.
- Можно исключать определённые записи или типы.
Для установки перейдите в админку WordPress > Плагины > Добавить новый, найдите "Yet Another Related Posts Plugin" и установите. После активации настройте количество и тип отображения в разделе настроек YARPP.
2. Contextual Related Posts
Этот плагин позволяет выводить связанные записи с учётом контекста статьи — по содержанию, тегам, категориям. Поддерживает кэширование для ускорения сайта.
- Поддержка миниатюр и кастомизации шаблонов.
- Возможность вывода через шорткод и виджет.
- Настройка исключений и фильтров.
Установите и активируйте через админку WordPress, затем настройте в разделе «Contextual Related Posts».
Рекомендации по оптимизации и SEO для связанных записей
Чтобы связанные записи приносили максимальную пользу, обратите внимание на несколько важных моментов:
- Не выводите слишком много ссылок — 3-5 релевантных записей достаточно.
- Исключайте текущую запись из списка, чтобы не было дублирования.
- Используйте кеширование при выводе связанных записей, чтобы не нагружать базу данных.
- Оптимизируйте запросы — избегайте сложных tax_query без необходимости.
- Добавляйте микроразметку для улучшения индексации поисковиками.
Пример расширения функции: вывод миниатюр и отрывка записи
Чтобы сделать список связанных записей привлекательнее, добавим вывод миниатюры и короткого описания:
function wpcat_get_related_posts_extended() {
global $post;
$categories = wp_get_post_categories($post->ID);
$tags = wp_get_post_tags($post->ID, array('fields' => 'ids'));
if (empty($categories) && empty($tags)) {
return;
}
$args = array(
'post__not_in' => array($post->ID),
'posts_per_page' => 5,
'ignore_sticky_posts' => 1,
'orderby' => 'date',
'order' => 'DESC',
'tax_query' => array(
'relation' => 'OR',
),
);
if (!empty($categories)) {
$args['tax_query'][] = array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => $categories,
);
}
if (!empty($tags)) {
$args['tax_query'][] = array(
'taxonomy' => 'post_tag',
'field' => 'term_id',
'terms' => $tags,
);
}
$related_posts = new WP_Query($args);
if ($related_posts->have_posts()) {
echo '<div class="wpcat-related-posts-extended"><h3>Похожие записи</h3><ul>';
while ($related_posts->have_posts()) {
$related_posts->the_post();
echo '<li><a href="'.get_permalink().'" title="'.get_the_title().'">';
if (has_post_thumbnail()) {
echo get_the_post_thumbnail($post->ID, 'thumbnail');
}
echo '<span class="title">'.get_the_title().'</span>';
echo '<span class="excerpt">'.wp_trim_words(get_the_excerpt(), 15, '...').'</span>';
echo '</a></li>';
}
echo '</ul></div>';
wp_reset_postdata();
}
}
Такой вывод улучшит визуальное восприятие и поможет пользователям быстрее ориентироваться.
Интеграция с плагином Clearfy Pro для ускорения сайта
Если вы используете Clearfy Pro, его настройки оптимизации помогут ускорить загрузку страницы с связанными записями, отключить избыточные скрипты, а также улучшить SEO. В частности, Clearfy Pro предоставляет удобные инструменты для управления мета-тегами и кешированием, что положительно скажется на производительности.
Заключение
Автоматическое отображение связанных записей — простой и эффективный способ повысить юзабилити и SEO сайта на WordPress. Используйте как собственные реализации с WP_Query, так и проверенные плагины, учитывайте рекомендации по оптимизации, и ваши посетители останутся на сайте дольше, находя интересный контент.