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

С YARPP часто возникает не проблема самого подбора похожих записей, а вопрос точечного исключения: на одних страницах блок нужен, на других он мешает, дублирует навигацию или уводит трафик в нерелевантные материалы. Типичный сценарий — на новостных и справочных статьях похожие записи полезны, а на посадочных страницах, страницах с узкой SEO-структурой или в некоторых рубриках блок лучше убрать полностью.

У YARPP есть настройки в админке, но для точечного контроля этого обычно недостаточно. Если нужно отключать вывод по условиям, проще сделать это кодом: либо через фильтр YARPP, либо через логику темы, которая не даст блоку отрисоваться на нужных записях.

Когда блок похожих записей лучше скрыть

Сначала стоит понять, что именно вы хотите исправить. Не всегда проблема в YARPP как таковом. Иногда блок просто стоит не на том шаблоне или конфликтует с SEO-логикой сайта.

  • На страницах с коммерческим или сервисным контентом блок похожих записей отвлекает от целевого действия.
  • В некоторых рубриках похожие материалы слишком общие и не дают полезного перехода.
  • На длинных справочных статьях уже есть оглавление, связанные материалы и внутренние ссылки, поэтому дополнительный блок перегружает страницу.
  • На отдельных типах записей, например landing или docs, похожие записи вообще не нужны.

Быстрая диагностика проблемы

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

  1. Откройте шаблон одиночной записи и найдите вызовы вроде yarpp_related() или вставку через хук темы.
  2. Проверьте, не добавлен ли блок через виджет или конструктор.
  3. Посмотрите, есть ли фильтры темы, которые уже позволяют скрывать секции по категориям или типам записей.
  4. Сравните HTML страницы до и после отключения: блок должен исчезнуть не только визуально, но и из DOM.

Как отключить YARPP для конкретных категорий

Если задача — не показывать похожие записи в отдельных рубриках, самый практичный вариант — обернуть вывод в условие по категориям. Это безопаснее, чем править сам плагин, потому что обновления YARPP не затрут изменения.

Пример для functions.php дочерней темы или собственного мини-плагина:

<?php
add_filter( 'the_content', 'mytheme_remove_yarpp_in_specific_categories', 20 );

function mytheme_remove_yarpp_in_specific_categories( $content ) {
    if ( ! is_singular( 'post' ) ) {
        return $content;
    }

    if ( has_category( array( 'landing', 'docs' ) ) ) {
        remove_filter( 'the_content', 'yarpp_related', 10 );
    }

    return $content;
}

Этот пример полезен только если YARPP вставляется через фильтр контента. Если блок выводится в шаблоне напрямую, нужно менять место вызова. В таком случае логика будет проще: проверяете условия и вызываете yarpp_related() только там, где это нужно.

<?php
if ( function_exists( 'yarpp_related' ) ) {
    if ( ! has_category( array( 'landing', 'docs' ) ) ) {
        yarpp_related();
    }
}

Такой подход понятнее для поддержки: сразу видно, почему блок не выводится, и не приходится искать скрытые фильтры в плагине.

Как отключить похожие записи для отдельных записей

Если нужно убрать блок только на конкретных постах, удобнее использовать массив ID. Это хороший вариант для редких исключений, когда не хочется плодить дополнительные категории или метки только ради одного шаблона.

<?php
function mytheme_skip_yarpp_on_posts( $post_id ) {
    $excluded_posts = array( 123, 456, 789 );

    return in_array( (int) $post_id, $excluded_posts, true );
}

add_action( 'loop_end', function( $query ) {
    if ( ! is_singular() || ! $query->is_main_query() ) {
        return;
    }

    global $post;

    if ( $post && mytheme_skip_yarpp_on_posts( $post->ID ) ) {
        remove_filter( 'the_content', 'yarpp_related', 10 );
    }
} );

Если ваш шаблон не использует the_content для вывода YARPP, этот способ не сработает. Тогда лучше вынести условие прямо в файл шаблона single.php или в шаблонную часть, где блок подключается.

Сравнение подходов: плагин, код, компромисс

ПодходКогда подходитПлюсыМинусы
Настройки YARPPНужно глобально изменить поведениеБыстро, без кодаНе хватает точности для отдельных страниц
Код в теме или мини-плагинеНужно скрыть блок в конкретных условияхГибко, прозрачно, можно версионироватьНужно понимать, где именно выводится блок
Отключение через шаблонБлок подключён напрямую в темеСамый предсказуемый вариантЗависит от структуры темы

Пошаговое решение без поломки шаблона

Если нужен рабочий и контролируемый вариант, действуйте так:

  1. Определите, где подключается YARPP: в контенте, в шаблоне или через виджет.
  2. Выберите условие отключения: категория, ID записи, тип записи, шаблон страницы.
  3. Добавьте код в дочернюю тему или отдельный мини-плагин, а не в основной файл темы.
  4. Проверьте, что блок исчезает только там, где нужно.
  5. Очистите кеш страницы и кеш плагина, если он используется.

Если у вас есть собственный плагин для технических правок, это даже лучше: логика не зависит от смены темы. Для сайтов с активной SEO-оптимизацией такой подход обычно надежнее, чем ручные правки шаблонов.

Проверка результата после внедрения

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

  • Откройте страницу в режиме инкогнито и убедитесь, что блок не отображается.
  • Посмотрите исходный код страницы: в HTML не должно быть контейнера YARPP, если вы отключали именно вывод.
  • Проверьте несколько страниц из разных категорий, чтобы не сломать показ там, где он нужен.
  • Если есть кеш, сбросьте его и повторите проверку после очистки.

Для быстрой технической проверки можно временно добавить логирование в условие и убедиться, что нужные записи попадают под фильтр:

<?php
add_action( 'wp_footer', function() {
    if ( is_singular( 'post' ) && has_category( 'landing' ) ) {
        echo '<!-- YARPP disabled for landing category -->';
    }
} );

Это не решение для продакшена, а только способ быстро понять, срабатывает ли условие на нужной странице.

Частые ошибки и как их исправить

Правят файл плагина напрямую

Это самая частая ошибка. После обновления YARPP изменения пропадут. Если нужно менять поведение плагина, делайте это через хуки, шаблон темы или отдельный мини-плагин.

Скрывают блок только CSS-ом

Визуально блок исчезает, но плагин всё равно выполняет запросы и формирует HTML. Для производительности это слабое решение. CSS годится только как временная мера, если нужно срочно убрать блок с экрана.

Путают категории и рубрики с таксономиями

Если у вас кастомные таксономии, has_category() не поможет. В этом случае используйте has_term() и указывайте нужную таксономию явно.

<?php
if ( is_singular( 'post' ) && has_term( 'docs', 'topic' ) ) {
    // отключаем YARPP
}

Не учитывают кеш

После правки код может быть уже правильным, но на сайте продолжает показываться старый HTML из кеша. Это особенно заметно на сайтах с серверным кешированием и плагинами оптимизации. Сначала очищайте кеш, потом проверяйте условия.

Что учесть для безопасности и производительности

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

Практически полезные меры:

  • выносите логику в дочернюю тему или мини-плагин;
  • не редактируйте файлы плагина вручную;
  • проверяйте, не дублируется ли блок в нескольких местах шаблона;
  • если блок нужен только на части сайта, отключайте его до генерации HTML, а не после;
  • после изменений прогоняйте несколько типовых URL через браузер и исходный код страницы.

Если вам нужен более широкий набор инструментов для чистки дублей, SEO-правок и отключения лишних элементов в WordPress, можно посмотреть на Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже в этом случае логику показа YARPP лучше держать в коде и проверять отдельно.

Если после внедрения блок исчезает не везде или, наоборот, пропадает на всех страницах, значит условие выбрано слишком широко. В таких случаях проще начать с одного ID записи и одной категории, а потом расширять правило по мере проверки.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как отключить показ похожих записей YARPP в отдельных категориях и записях WordPress
31.08.2026
Как отключить YARPP для отдельных рубрик и страниц и вывести свой список похожих записей
07.09.2026
Как отключить похожие записи YARPP в отдельных типах записей и на конкретных страницах WordPress
04.09.2026
Как отключить старые ссылки attachment в WordPress и убрать дубли из индекса
28.08.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше