wpcat.ru wordpress WPCat.ru

Как создать автоматическое отображение связанных записей в WordPress

Многие сайты на 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, так и проверенные плагины, учитывайте рекомендации по оптимизации, и ваши посетители останутся на сайте дольше, находя интересный контент.

×
День SEO
Время сделать подарок своему WordPress!
-20% на премиум

шаблоны и плагины

Порадуй свой сайт ⋙