Причины, по которым YARPP перестает работать после обновления WordPress
После обновления ядра WordPress или самого плагина YARPP некоторые пользователи сталкиваются с неожиданной проблемой: плагин перестает отображать связанные записи. Это случается из-за изменений в API WordPress, несовместимости версий плагина и ядра, а также из-за конфликтов с другими плагинами или темами.
Часто причиной становится устаревший код плагина, который не учитывает новые функции или изменения в базе данных WordPress. Также возможен сбой кэширования или изменение правил пермалинков.
Еще одна распространенная причина — изменения в настройках сервера, например, новые ограничения по памяти PHP или измененные права на файлы и папки.
Проверка и диагностика проблемы с YARPP после обновления WordPress
Для начала стоит выполнить несколько простых шагов диагностики:
- Отключить все плагины, кроме YARPP, и проверить, появляется ли блок связанных записей.
- Переключиться на стандартную тему WordPress (например, Twenty Twenty-Two) и протестировать работу плагина.
- Очистить кэш сайта и браузера, если используются кэширующие плагины или сервисы.
- Проверить логи ошибок сервера и WordPress (файл
wp-content/debug.logпри включенном WP_DEBUG).
Если после этих шагов YARPP все еще не работает, стоит посмотреть, не изменились ли настройки плагина или не повреждены ли его файлы.
Исправление проблемы с YARPP: практические рекомендации и код
Обновление настроек плагина через functions.php
Иногда помогает принудительное сбрасывание настроек YARPP с помощью кода. Добавьте в файл functions.php вашей темы следующий код, который сбросит кэш и настройки:
function yarpp_reset_settings_yarpp_ru() {
if ( class_exists('YARPP') ) {
delete_option('yarpp_options');
delete_transient('yarpp_cache');
}
}
add_action('init', 'yarpp_reset_settings_yarpp_ru');После выполнения кода обновите страницу сайта и проверьте, появились ли связанные записи. Затем удалите этот код из functions.php, чтобы не сбрасывать настройки постоянно.
Использование фильтра для исправления выборки связанных записей
В новых версиях WordPress могли измениться условия запроса к базе данных. Можно вручную скорректировать запрос YARPP, используя фильтр yarpp_related:
function yarpp_custom_query_yarpp_ru($related, $post_id) {
if ( empty($related) ) {
// Попытка альтернативного запроса
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'post__not_in' => array($post_id),
'orderby' => 'rand',
);
$query = new WP_Query($args);
return $query->posts;
}
return $related;
}
add_filter('yarpp_related', 'yarpp_custom_query_yarpp_ru', 10, 2);Этот код заменит пустой результат YARPP на случайные записи, что позволит избежать пустого блока с связанными публикациями.
Советы по совместимости и предотвращению проблем с YARPP в будущем
Чтобы минимизировать риски после обновлений WordPress и плагинов:
- Всегда тестируйте обновления на тестовом сайте, а не сразу на рабочем.
- Следите за обновлениями плагина YARPP и устанавливайте их своевременно.
- Используйте плагин для создания резервных копий, чтобы быстро восстановить рабочую версию сайта.
- Проверяйте совместимость используемой темы и других плагинов с текущей версией WordPress.
Кроме того, можно включить отладочный режим WordPress через wp-config.php, добавив:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);Это поможет ловить скрытые ошибки, которые могут влиять на работу YARPP.
Альтернативные плагины для связанных записей и их интеграция
Если проблема с YARPP не решается, можно рассмотреть альтернативные плагины с похожим функционалом:
- Related Posts Thumbnails Plugin for WordPress — простой и легкий плагин с выводом связанных записей с миниатюрами.
- Contextual Related Posts — имеет гибкие настройки и хорошо работает с большим объемом контента.
- Jetpack Related Posts — модуль от Automattic с простым включением и хорошей интеграцией.
Для интеграции альтернативных плагинов достаточно установить и активировать плагин, а затем при необходимости добавить вызов функции вывода связанных записей в нужное место темы, например:
<?php if (function_exists('crp_get_related_posts')) {
echo crp_get_related_posts();
} ?>или для Jetpack:
<?php if (function_exists('jetpack_related_posts')) {
echo jetpack_related_posts();
} ?>Используйте эти плагины, если YARPP создает сложности и вам нужна стабильная работа.