Что такое похожие записи и почему они важны для вашего сайта
Похожие записи — это блок ссылок на другой контент вашего сайта, который обычно размещается в конце статьи или страницы. Их основная цель — удержать посетителя на ресурсе, предлагая ему релевантный материал. Это способствует увеличению глубины просмотра, снижению показателя отказов и улучшению общих поведенческих метрик, что положительно сказывается на SEO.
Проблемы со стандартной функциональностью похожих записей WordPress
В ядре WordPress отсутствует встроенная, гибкая система вывода похожих записей. Темы и плагины реализуют эту функциональность по-разному. Часто стандартные реализации могут быть неоптимальными: они могут не учитывать релевантность контента должным образом (например, только по категориям или тегам), быть тяжелыми для производительности или иметь ограниченные возможности для настройки внешнего вида и критериев отбора.
Когда необходимо редактировать отображение похожих записей
Редактирование отображения похожих записей становится необходимым, когда:
Текущая реализация в вашей теме или плагине не удовлетворяет требованиям к релевантности контента (например, записи "похожи" лишь формально).
Вам нужно изменить количество выводимых записей, их порядок сортировки или исключить определенные материалы (старые новости, служебные страницы).
Визуальное оформление блока не соответствует дизайну сайта или имеет низкую кликабельность.
Функциональность создает избыточную нагрузку на сервер.
Вы хотите провести A/B тестирование для определения наиболее эффективных критериев отбора и дизайна.
Ручное редактирование похожих записей в WordPress (для опытных пользователей)
Ручное редактирование требует понимания структуры тем WordPress и принципов работы с хуками.
Редактирование шаблона темы: поиск файла, отвечающего за вывод похожих записей
Блок похожих записей чаще всего располагается в файлах шаблона одиночной записи (например, single.php) или в отдельном шаблонном файле (например, template-parts/related-posts.php), который подключается через функцию get_template_part(). Вам потребуется найти этот файл в директории вашей темы. Важно: Никогда не редактируйте файлы непосредственно в директории темы, если вы не используете дочернюю тему.
Использование хуков WordPress (actions и filters) для изменения логики вывода
WordPress предоставляет хуки, позволяющие модифицировать поведение системы без прямого изменения файлов ядра или плагинов. Для похожих записей чаще всего используются фильтры, влияющие на аргументы запроса WP_Query (pre_get_posts) или результаты выполнения запроса.
Создание дочерней темы (child theme) для безопасного редактирования
Перед внесением любых изменений в код темы, создайте дочернюю тему. Это стандартная и критически важная практика. Дочерняя тема наследует функциональность и стили родительской темы, но позволяет безопакто модифицировать или добавлять новые шаблоны и функции, не теряя изменения при обновлении родительской темы.
Примеры кода для изменения порядка, количества и критериев отбора похожих записей
Предположим, ваша тема использует функцию, которая внутри себя формирует запрос WP_Query для получения похожих записей и предоставляет фильтр для модификации аргументов этого запроса. Если такого фильтра нет, его можно добавить или переопределить логику через общий фильтр pre_get_posts (хотя это требует аккуратности, чтобы не затронуть другие запросы).
Пример модификации аргументов запроса через условный фильтр theme_related_posts_args:
<?php
/**
* Modify the arguments for the related posts query.
*
* @param array $args The original query arguments.
* @param int $post_id The ID of the current post.
* @return array Modified query arguments.
*/
function my_child_theme_related_posts_args( array $args, int $post_id ): array {
// Ensure this filter is applied only where intended
// (e.g., check for a specific flag added by the theme's function)
// if ( ! isset( $args['is_related_query'] ) || ! $args['is_related_query'] ) {
// return $args;
// }
// Change the number of posts
$args['posts_per_page'] = 5; // Was 3, now 5
// Change the order (e.g., by title ascending)
$args['orderby'] = 'title';
$args['order'] = 'ASC';
// Ensure current post is excluded
$args['post__not_in'] = array( $post_id );
// Add taxonomy query (e.g., must share at least one tag)
$post_tags = get_the_terms( $post_id, 'post_tag' );
if ( $post_tags && ! is_wp_error( $post_tags ) ) {
$tag_ids = wp_list_pluck( $post_tags, 'term_id' );
$args['tax_query'] = array(
array(
'taxonomy' => 'post_tag',
'field' => 'term_id',
'terms' => $tag_ids,
'operator' => 'IN',
),
);
}
return $args;
}
// Hook into the hypothetical filter provided by the theme
// add_filter( 'theme_related_posts_args', 'my_child_theme_related_posts_args', 10, 2 );
// If no specific filter exists, consider using 'pre_get_posts' cautiously,
// adding checks to ensure it only affects the related posts query.
/*
function my_child_theme_pre_get_posts( \WP_Query $query ): void {
// Check if it's the main query on a single post page and NOT in the admin
if ( $query->is_main_query() || is_admin() || ! is_single() ) {
return;
}
// Add checks here to identify your specific related posts query,
// if it's initiated before this filter runs.
// This is complex and depends heavily on theme implementation.
// Example: Apply changes only if a certain query var is set (requires theme support)
// if ( $query->get( 'is_related_query' ) ) {
// $query->set( 'posts_per_page', 5 );
// $query->set( 'orderby', 'title' );
// $query->set( 'order', 'ASC' );
// // Getting current post ID safely within pre_get_posts for a secondary query is tricky.
// // You'd likely need to pass it via query_var or rely on global $post.
// }
}
// add_action( 'pre_get_posts', 'my_child_theme_pre_get_posts', 10 );
*/Этот пример демонстрирует, как можно изменить количество записей (posts_per_page), порядок сортировки (orderby, order) и добавить критерии релевантности на основе таксономий (tax_query). Реализация зависит от того, какие хуки предоставляет ваша тема.
Использование плагинов для редактирования похожих записей: пошаговая инструкция
Использование плагинов — наиболее распространенный и гибкий способ управления похожими записями для большинства пользователей.
Обзор популярных плагинов для похожих записей
Существует множество плагинов, предлагающих различный функционал: от простых виджетов до комплексных систем с кешированием и аналитикой. Среди известных можно выделить "Related Posts for WordPress" (раньше "Related Posts by Zemanta") или "Yet Another Related Posts Plugin (YARPP)", хотя актуальность и поддержка последних могут варьироваться. Выбирайте плагин, исходя из необходимых критериев отбора, требований к производительности и возможностей настройки внешнего вида.
Установка и настройка выбранного плагина: базовые параметры и возможности
Установка плагина стандартна: через админ-панель WordPress (Раздел Плагины -> Добавить новый) или загрузкой архива. После активации найдите раздел настроек плагина (часто в меню "Настройки" или отдельный пункт в боковой панели). На базовом уровне плагины позволяют:
Выбрать типы записей, для которых будут отображаться похожие (посты, страницы, кастомные типы).
Установить основной критерий релевантности (по категориям, по тегам, по названию, комбинированно).
Указать место автоматического размещения блока (до или после контента).
Настройка отображения: выбор шаблона, размера превью, количества записей
Современные плагины предлагают гибкие настройки внешнего вида. Вы можете:
Выбрать из нескольких готовых шаблонов отображения (список, сетка с превью).
Задать количество выводимых записей.
Настроить показ миниатюр записей: включить/выключить, выбрать размер, соотношение сторон.
Отредактировать заголовок блока ("Похожие записи", "Вам может быть интересно").
Иногда доступно добавление пользовательских CSS для тонкой настройки стилей.
Фильтрация похожих записей: исключение категорий, тегов и отдельных записей
Для повышения релевантности или управления контентом многие плагины позволяют исключать определенные элементы:
Исключать записи из определенных категорий или с определенными тегами.
Исключать текущую запись (обычно по умолчанию).
Исключать отдельные записи по их ID.
Устанавливать минимальный или максимальный возраст записи.
Продвинутые настройки и оптимизация похожих записей
Для извлечения максимальной пользы из блока похожих записей необходима оптимизация и анализ.
A/B тестирование различных вариантов отображения похожих записей
Тестирование позволяет определить, какие критерии отбора, внешний вид и расположение блока дают наибольшую кликабельность и глубину просмотра. Можно тестировать:
Разное количество записей.
Различные заголовки блока.
Отображение с миниатюрами против текстового списка.
Расположение (сразу после контента, в боковой панели, внутри контента).
Критерии релевантности (только теги vs теги+категории vs собственный алгоритм плагина).
Использование кеширования для повышения производительности
Запрос похожих записей может быть ресурсоемким, особенно на больших сайтах. Многие плагины имеют встроенное кеширование. Если нет, или вы реализуете функционал вручную, используйте WordPress Transient API для временного хранения результатов запроса. Это значительно снизит нагрузку на базу данных при каждом просмотре страницы.
Анализ эффективности похожих записей с помощью Google Analytics
Для отслеживания эффективности настройте в Google Analytics отслеживание кликов по ссылкам в блоке похожих записей. Это можно сделать через Google Tag Manager, настроив триггер по классу или селектору CSS блока, или добавив onclick события к ссылкам. Анализируйте такие метрики, как количество кликов, процент кликов относительно просмотров блока, среднее время на сайте после перехода по похожей записи.
Рекомендации по дизайну и расположению блока похожих записей для увеличения кликабельности
Размещайте блок сразу после основного контента, перед комментариями или футером. Это естественное место, где пользователь завершил чтение текущей статьи.
Сделайте заголовок блока заметным и привлекательным.
Используйте качественные миниатюры записей, если они доступны.
Обеспечьте достаточный контраст текста и ссылок с фоном.
На мобильных устройствах убедитесь, что блок хорошо читается и не занимает слишком много места.
Альтернативные способы вывода похожих записей
Помимо автоматических методов, существуют подходы, требующие больше ручного контроля.
Использование блоков Gutenberg для ручного добавления похожих записей
В редакторе Gutenberg вы можете вручную добавить блок "Список" или "Медиа и текст" и составить подборку записей. Для часто используемых комбинаций или для стандартизации оформления можно создать Многократно используемый блок (Reusable Block). Этот метод полезен, когда вам нужна очень специфическая подборка для конкретной статьи, но он не масштабируется для всего сайта автоматически.
Интеграция с сервисами персонализированных рекомендаций контента
Более продвинутым подходом является интеграция с внешними сервисами рекомендаций контента, такими как Outbrain, Taboola, или аналогичными, которые используют собственные алгоритмы машинного обучения для анализа поведения пользователя и контента сайта. Интеграция обычно требует регистрации в сервисе, установки их скриптов и настройки виджетов, что может быть сложнее, чем работа с плагинами, но часто дает более релевантные и персонализированные рекомендации.