Плагин YARPP (Yet Another Related Posts Plugin) широко используется для показа связанных записей в WordPress. По умолчанию он настраивается на основе заголовков, меток и категорий. Но часто возникает задача показать связанные записи именно по автору. В этой статье мы подробно разберём, как реализовать такой функционал с помощью кастомного фильтра и немного кода.
Почему важно выводить связанные записи по автору
Показывая записи одного автора, вы повышаете вовлечённость пользователей, особенно если авторы специализируются на своих темах и аудитория их читателей лояльна. В интернет-магазинах или блогах с несколькими авторами это помогает лучше раскрыть контент и увеличить время пребывания на сайте.
Однако стандартные настройки YARPP не позволяют гибко комбинировать выборку по автору с другими критериями. Поэтому приходится создавать кастомные фильтры, которые позволят управлять алгоритмом подбора.
Как работает фильтр related_posts_args в YARPP
Плагин YARPP предоставляет фильтр yarpp_related_posts_args, который позволяет менять аргументы выборки связанных записей. Именно его мы используем, чтобы добавить условие по автору.
Аргументы представляют собой массив параметров WP_Query, поэтому можно использовать все возможности стандартного класса для выборки постов.
Основные шаги создания фильтра вывода по автору
- Подключить фильтр
yarpp_related_posts_args. - Добавить условие выбора записей с таким же автором, как у текущей записи.
- Опционально: сохранить остальные критерии или очистить их для точного вывода.
Пример кода для вывода связанных записей по автору
Добавьте следующий код в файл functions.php вашей темы или в кастомный плагин:
add_filter('yarpp_related_posts_args', 'yarpp_filter_related_posts_by_author', 10, 1);
function yarpp_filter_related_posts_by_author($args) {
global $post;
if (!$post) {
return $args; // Без текущего поста ничего не делаем
}
// Задаём выборку только по автору текущей записи
$author_id = $post->post_author;
// Очищаем стандартные критерии YARPP (категории, теги и др.)
$args['post_author'] = $author_id;
$args['tax_query'] = array();
$args['meta_query'] = array();
$args['relation'] = '';
// Можно ограничить типы записей, если нужно
$args['post_type'] = array('post');
return $args;
}
Этот код полностью переопределяет выборку и показывает только записи того же автора, исключая стандартные критерии YARPP.
Комбинирование выбора по автору с другими параметрами
Если вы хотите не полностью заменять выборку, а добавить авторский фильтр как дополнительный критерий, сделайте так:
add_filter('yarpp_related_posts_args', 'yarpp_add_author_filter_to_related_posts', 10, 1);
function yarpp_add_author_filter_to_related_posts($args) {
global $post;
if (!$post) {
return $args;
}
$author_id = $post->post_author;
$args['post_author'] = $author_id;
return $args;
}
В этом случае YARPP будет использовать и другие настройки, но фильтровать посты только по автору.
Как проверить работу фильтра и отладить выборку
Для проверки правильности выборки можно добавить временный вывод аргументов в лог:
add_filter('yarpp_related_posts_args', 'yarpp_debug_related_posts_args', 20, 1);
function yarpp_debug_related_posts_args($args) {
error_log(print_r($args, true));
return $args;
}
Логи вы найдете в файле wp-content/debug.log, если включена отладка (define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); в wp-config.php).
Рекомендации по оптимизации и кешированию
На больших сайтах выборка по автору может нагрузить базу данных, особенно если у автора много записей. Чтобы этого избежать, используйте кеширование:
- Включите встроенное кеширование YARPP в настройках.
- Используйте плагины кеширования, например Clearfy Pro для оптимизации базы данных.
- Рассмотрите возможность реализации кеша на уровне объекта с помощью Transients API WordPress.
Альтернативные плагины для связанных записей по автору
Если YARPP кажется сложным или не даёт нужной гибкости, можно попробовать:
- Contextual Related Posts — поддерживает кастомные фильтры.
- Related Posts for WordPress — предлагает простую настройку по авторам.
- WP GPT от WPSHOP — для интеллектуального подбора контента с AI, можно попробовать комбинировать с фильтрами по авторам.
Итоги и полезные ссылки
Вывод связанных записей по автору в YARPP — задача, решаемая через фильтр yarpp_related_posts_args. Это даёт гибкость и позволяет улучшить пользовательский опыт. Чтобы узнать больше о возможностях YARPP и других полезных плагинах, рекомендуем посетить официальный магазин плагинов WPSHOP.