wpcat.ru wordpress WPCat.ru

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

Автоматическое отображение связанных записей в WordPress — востребованная функция, которая улучшает навигацию по сайту и увеличивает вовлечённость пользователей. В этой статье разберём, как реализовать такой блок без использования громоздких плагинов, опираясь на стандартные возможности WordPress: таксономии, пользовательские поля и WP_Query. Кроме того, рассмотрим несколько полезных плагинов для расширения функционала.

Почему важно показывать связанные записи

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

Важный момент — определить критерии связи. Чаще всего это общие категории, теги или пользовательские таксономии. Также можно использовать метаданные (пользовательские поля) для более точного отбора.

Основные подходы к реализации блока связанных записей

Связь по категориям и тегам

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

Ниже пример функции wpcat_get_related_posts_by_taxonomy(), которая получает связанные записи по категориям:

function wpcat_get_related_posts_by_taxonomy($post_id, $taxonomy = 'category', $limit = 5) {
    $terms = wp_get_post_terms($post_id, $taxonomy, array('fields' => 'ids'));
    if (empty($terms) || is_wp_error($terms)) {
        return array();
    }
    $query = new WP_Query(array(
        'post_type' => get_post_type($post_id),
        'posts_per_page' => $limit,
        'post__not_in' => array($post_id),
        'tax_query' => array(
            array(
                'taxonomy' => $taxonomy,
                'field' => 'term_id',
                'terms' => $terms,
            ),
        ),
    ));
    return $query->posts;
}

Далее можно вывести полученные записи в любом удобном формате.

Связь через пользовательские поля

Если требуется более специфичная логика, например, связать записи по определённому значению метаполя, можно использовать meta_query в WP_Query.

function wpcat_get_related_posts_by_meta($post_id, $meta_key, $limit = 5) {
    $meta_value = get_post_meta($post_id, $meta_key, true);
    if (empty($meta_value)) {
        return array();
    }
    $query = new WP_Query(array(
        'post_type' => get_post_type($post_id),
        'posts_per_page' => $limit,
        'post__not_in' => array($post_id),
        'meta_query' => array(
            array(
                'key' => $meta_key,
                'value' => $meta_value,
                'compare' => '=',
            ),
        ),
    ));
    return $query->posts;
}

Такой метод поможет, например, показывать записи с одинаковым автором, проектом, продуктом и т.д.

Вывод блока связанных записей в шаблоне

Для вывода результатов достаточно цикл WordPress:

$related_posts = wpcat_get_related_posts_by_taxonomy(get_the_ID());
if (!empty($related_posts)) {
    echo '<div class="related-posts"><h3>Похожие материалы</h3><ul>';
    foreach ($related_posts as $post) {
        setup_postdata($post);
        echo '<li><a href="' . get_permalink($post) . '">' . get_the_title($post) . '</a></li>';
    }
    echo '</ul></div>';
    wp_reset_postdata();
}

Можно оформить вывод с помощью CSS или применить кастомный шаблон для блока.

Полезные плагины для расширения функционала связанных записей

Если хочется готового решения с настройками — рассмотрите плагины:

  • Yet Another Related Posts Plugin (YARPP) — позволяет выводить связанные записи с множеством настроек и шаблонов.
  • Related Posts for WordPress — лёгкий и быстрый плагин с возможностью кэширования результата.
  • WPGPT от WPSHOP — если хотите интегрировать AI для умного подбора похожих материалов, этот плагин поможет сгенерировать ссылки на релевантные записи.

Оптимизация и кеширование

Запросы к базе данных при отображении связанных записей могут нагрузить сайт. Чтобы избежать снижения скорости, рекомендуется кешировать результаты. Это можно сделать, например, с помощью Transients API:

function wpcat_get_related_posts_cached($post_id, $taxonomy = 'category', $limit = 5) {
    $cache_key = 'wpcat_related_' . $post_id;
    $related = get_transient($cache_key);
    if ($related === false) {
        $related = wpcat_get_related_posts_by_taxonomy($post_id, $taxonomy, $limit);
        set_transient($cache_key, $related, 12 * HOUR_IN_SECONDS);
    }
    return $related;
}

Такой подход снижает количество запросов и ускоряет загрузку страниц.

Итог

Создать автоматическое отображение блока связанных записей в WordPress можно разными способами — от простого выбора по категориям до сложных алгоритмов с использованием пользовательских полей и AI. Главное — подобрать логику под задачи сайта и позаботиться об оптимизации. Используйте примеры кода из статьи, а также рекомендуемые плагины, чтобы улучшить пользовательский опыт и SEO вашего ресурса.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее