Если YARPP уже стоит на сайте, но блок похожих записей нужен не везде, лучше отключать его точечно, а не удалять плагин целиком. На практике чаще всего мешают три сценария: служебные страницы, отдельные типы записей с собственным шаблоном и контент, где похожие материалы ломают UX или дублируют внутреннюю перелинковку.
Ниже — рабочие способы: через настройки, через код и через проверку результата. Без выдуманных хуков и без «магии» — только то, что реально можно внедрить в WordPress.
Когда YARPP стоит отключать точечно
Сначала полезно понять, что именно вы хотите убрать. Если блок похожих записей мешает только на одной странице, не трогайте глобальные настройки. Если он не нужен во всём типе записей, проще добавить условие в шаблон или использовать фильтр плагина. Если же проблема в индексации и дублях, отключение блока — только часть решения, а не финальный шаг.
Типичные сценарии
- на страницах
privacy-policy,contacts,aboutблок выглядит лишним; - в кастомном типе записей уже есть своя навигация по материалам;
- на лендингах и посадочных страницах похожие записи уводят пользователя от целевого действия;
- в AMP, PDF-версии или упрощённом шаблоне блок ломает верстку;
- в новостных разделах похожие материалы дублируют блоки «Читайте также» из темы.
Диагностика: где именно подключается блок YARPP
Перед правкой кода проверьте, как блок выводится в вашей теме. Обычно YARPP добавляет его через шаблонный тег или через виджет/блок темы. Если вы не видите явного вызова в шаблоне, ищите упоминания yarpp_related в файлах темы и дочерней темы.
grep -R "yarpp_related" wp-content/themes/ wp-content/plugins/Если доступен SSH, такой поиск быстрее всего покажет, где именно блок подключается. В админке можно проверить и визуально: откройте проблемную страницу, посмотрите HTML через инструменты разработчика и найдите контейнер YARPP по классу или заголовку блока.
Полезно также проверить, не выводится ли похожий контент не самим YARPP, а темой. Иногда кажется, что блок принадлежит плагину, а на деле это собственный блок «Похожие статьи» в шаблоне single.php или в шаблоне блока.
Способ 1: отключить вывод в шаблоне для конкретных страниц
Если у вас есть доступ к теме или дочерней теме, самый предсказуемый вариант — обернуть вызов YARPP условием. Это удобно, когда нужно убрать блок только на конкретных страницах, записях или типах записей.
<?php
if ( function_exists( 'yarpp_related' ) ) {
if ( ! is_page( array( 'contacts', 'privacy-policy' ) ) && ! is_singular( 'landing' ) ) {
yarpp_related();
}
}
?>Здесь логика простая: если мы на странице контактов, политике конфиденциальности или в типе записей landing, блок не выводим. Для остальных страниц — выводим как обычно.
Когда этот способ лучше остальных
Он подходит, если вы контролируете шаблон и хотите, чтобы решение было прозрачным для команды. Через код в шаблоне проще поддерживать логику, чем потом искать скрытые фильтры в плагине.
Способ 2: отключить YARPP через фильтр для отдельных типов записей
Если не хочется править шаблоны, можно отрезать вывод на уровне фильтра. У YARPP есть фильтр yarpp_enabled, который позволяет включать или выключать работу плагина в зависимости от текущего запроса.
<?php
add_filter( 'yarpp_enabled', function( $enabled ) {
if ( is_admin() ) {
return $enabled;
}
if ( is_page( array( 'contacts', 'privacy-policy' ) ) ) {
return false;
}
if ( is_singular( array( 'landing', 'portfolio' ) ) ) {
return false;
}
return $enabled;
} );Этот вариант удобен, если блок подключается автоматически и вы не хотите искать все места вызова. Фильтр сработает до вывода, поэтому YARPP просто не будет рендерить блок на указанных страницах.
Если нужно отключать не по slug, а по ID, используйте is_page( 12 ) или массив ID. Для записей конкретного типа лучше опираться на is_singular() и список post type.
Способ 3: скрыть блок только в админке и не ломать логику сайта
Иногда задача не в том, чтобы убрать YARPP с фронтенда, а в том, чтобы не мешать редактору или не перегружать предпросмотр. В этом случае не трогайте фронтенд-логику. Лучше отключить вывод только там, где он реально мешает, и оставить его для публичной части сайта.
Если у вас кастомный шаблон, проверьте, не вызывается ли блок в предпросмотре записи. Для редактора Gutenberg это особенно заметно: лишние блоки в превью отвлекают и могут замедлять работу страницы редактирования, если тема делает тяжелые запросы.
Сравнение подходов
| Подход | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| Условие в шаблоне | Есть доступ к теме и нужен точный контроль | Прозрачно, легко отлаживать | Нужно править шаблоны |
Фильтр yarpp_enabled | Блок подключается автоматически | Не зависит от конкретного шаблона | Нужно аккуратно писать условия |
| Отключение через настройки плагина | Нужно убрать блок везде | Самый простой вариант | Не подходит для точечных сценариев |
Пошаговое решение для типового сайта
Если нужен рабочий минимум без лишней архитектуры, я бы делал так:
- Определить страницы и типы записей, где блок не нужен.
- Проверить, выводится ли YARPP из шаблона или автоматически.
- Добавить условие в шаблон или фильтр
yarpp_enabled. - Очистить кеш страницы и объектный кеш, если он есть.
- Проверить HTML на фронтенде и убедиться, что блок исчез только там, где нужно.
Если у вас включён кеш плагина или серверный кеш, без очистки можно получить ложный результат: в коде блок уже отключён, а на сайте ещё показывается старая версия страницы.
Проверка результата после внедрения
Проверять нужно не только глазами. Откройте проблемную страницу в режиме инкогнито и убедитесь, что:
- блок YARPP отсутствует в HTML;
- страница не содержит пустого контейнера от плагина;
- другие записи того же типа продолжают показывать похожие материалы;
- нет ошибок PHP в журнале сервера;
- после очистки кеша поведение не меняется.
Если используете браузерный поиск по DOM, ищите не только заголовок блока, но и классы, которые добавляет тема или плагин. Иногда визуально блок исчезает, а в HTML остаётся пустой контейнер, который потом ломает отступы.
Частые ошибки и как их исправить
Отключили не тот шаблон
Если YARPP всё ещё виден, проверьте, не подключается ли он в другом файле: например, в content-single.php, в шаблоне блока или через хук темы. Часто правят single.php, а вывод идёт из подключаемого шаблона.
Использовали слишком широкое условие
Ошибка выглядит так: is_singular() без аргументов или условие, которое выключает блок на всех одиночных страницах. В результате похожие записи пропадают там, где они были нужны. Лучше сначала перечислить конкретные типы записей и страницы, а потом расширять список.
Забыли очистить кеш
Если сайт использует кеш страниц, Redis, Varnish или кеш CDN, изменения могут не проявиться сразу. После правки шаблона или фильтра очистите все уровни кеширования и проверьте страницу в приватном окне.
Скрыли блок CSS-ом вместо отключения
Это рабочий, но слабый вариант. Контент всё равно может отдаваться в HTML, а значит, не решается ни вопрос лишней разметки, ни лишней нагрузки. Если задача именно убрать блок, лучше отключать его на уровне вывода.
Безопасность и производительность
Если на сайте много контента, лишние запросы к похожим записям могут быть заметны. Не стоит запускать YARPP на страницах, где он не нужен: это уменьшает нагрузку и упрощает разметку. Особенно это важно для шаблонов с большим количеством мета-блоков и связанных запросов.
Если вы правите код в теме, делайте это в дочерней теме или через мини-плагин. Так обновление темы не затрёт изменения. И не вставляйте условия прямо в файлы плагина: после обновления всё слетит.
Когда лучше не отключать YARPP, а перенастроить его
Если проблема не в конкретных страницах, а в том, что блок показывает нерелевантные материалы, сначала проверьте настройки сопоставления и шаблон вывода. Иногда достаточно изменить заголовок блока, количество записей или исключить часть контента из расчёта. Полное отключение — не всегда лучший ответ, если похожие записи реально помогают навигации.
Если вам нужна более широкая чистка дублей, служебных страниц и SEO-шума, иногда удобнее решать задачу в комплексе через отдельные инструменты для оптимизации WordPress. Но даже в этом случае точечное отключение YARPP на конкретных страницах остаётся самым безопасным и предсказуемым способом.