Как отладить и исправить ошибки в WordPress с помощью Debug Mode

WordPress — мощная CMS, но иногда при разработке или эксплуатации сайта возникают ошибки, которые сложно обнаружить и исправить. В этой статье мы подробно разберем, как включить и использовать встроенный режим отладки (Debug Mode) в WordPress, чтобы эффективно находить проблемы, анализировать их и устранять. Также рассмотрим полезные плагины и практические примеры кода для расширенной диагностики.

Что такое Debug Mode в WordPress и зачем его использовать

Режим отладки в WordPress — это встроенный инструмент, который помогает разработчикам и администраторам видеть предупреждения, ошибки PHP и другие сообщения, которые обычно скрыты на продакшен-сайте. Включение Debug Mode позволяет:

  • Выявить ошибки синтаксиса и логики в темах и плагинах.
  • Увидеть предупреждения и уведомления, которые могут привести к багам.
  • Отследить проблемы с подключением к базе данных и API.
  • Определить несовместимости между плагинами и темами.

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

Как включить Debug Mode в WordPress: подробная инструкция

Для активации режима отладки нужно отредактировать файл wp-config.php в корне вашего сайта. Следуйте инструкции:

  1. Подключитесь к серверу через FTP или воспользуйтесь файловым менеджером хостинга.
  2. Откройте файл wp-config.php.
  3. Найдите строку define('WP_DEBUG', false); или добавьте её, если нет.
  4. Измените или добавьте следующие строки:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

Пояснения:

  • WP_DEBUG — включает режим отладки.
  • WP_DEBUG_LOG — записывает ошибки в файл wp-content/debug.log.
  • WP_DEBUG_DISPLAY — отключает вывод ошибок на экран (рекомендуется для продакшена).
  • @ini_set('display_errors', 0); — дополнительная настройка отключения отображения ошибок.

После сохранения изменений ошибки начнут логироваться в файл wp-content/debug.log, который можно открыть и проанализировать.

Включение дополнительных режимов отладки

Для расширенной диагностики можно включить:

  • define('SCRIPT_DEBUG', true); — заставляет WordPress использовать не сжатые версии CSS и JS, что помогает при отладке фронтенда.
  • define('SAVEQUERIES', true); — сохраняет все SQL-запросы, что полезно для анализа производительности и поиска узких мест.

Вместе эти опции дают полный контроль над процессом отладки.

Практические примеры поиска и исправления ошибок с Debug Mode

Рассмотрим реальные ситуации, когда Debug Mode помогает быстро локализовать проблему.

Пример 1: Ошибка в функции темы

Допустим, после обновления темы сайт выдает белый экран без ошибок. Включаем Debug Mode и видим в debug.log сообщение:

PHP Fatal error:  Uncaught Error: Call to undefined function wplab_custom_function()

Это значит, что функция wplab_custom_function() вызывается в шаблоне, но не определена. Чтобы исправить, нужно:

  • Проверить, где объявлена эта функция.
  • Если функция находится в другом файле, убедиться, что он подключается через require_once или include.
  • Если функции нет, реализовать её, например:
function wplab_custom_function() {
    // Пример функции, возвращающей приветствие
    return 'Привет от WPLab!';
}

Пример 2: Конфликт плагинов

При активации нового плагина сайт начал выдавать предупреждения о несовместимости. В логах видим:

PHP Warning:  Cannot modify header information - headers already sent by (output started at /wp-content/plugins/plugin-name/file.php:10)

Это значит, что плагин выводит данные до отправки HTTP-заголовков. Чтобы решить:

  • Проверить файл плагина на наличие пробелов или вывода вне функций.
  • Исправить код, чтобы не было прямого вывода, использовать буферизацию вывода, например:
function wplab_buffer_output() {
    ob_start();
    // Ваш код
    $content = ob_get_clean();
    return $content;
}

Полезные плагины для отладки и мониторинга WordPress

Кроме встроенного Debug Mode, существуют плагины, которые помогают анализировать и исправлять ошибки:

  • Query Monitor — показывает запросы к базе данных, ошибки PHP, хуки и многое другое прямо в админ-панели.
  • Debug Bar — добавляет панель с информацией об ошибках, запросах и кэше.
  • Log Deprecated Notices — отображает устаревшие функции и хуки, которые могут вызвать проблемы.

Установка и использование этих плагинов значительно упрощает диагностику.

Как создать собственную функцию для логирования ошибок с префиксом WPLab

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

function wplab_log_error($message) {
    if (WP_DEBUG === true) {
        if (is_array($message) || is_object($message)) {
            error_log(print_r($message, true));
        } else {
            error_log($message);
        }
    }
}

Пример использования:

wplab_log_error('Ошибка при подключении к API');

Так вы сможете быстро отлавливать и систематизировать проблемы в коде.

Рекомендации по безопасности при использовании Debug Mode

Важно помнить, что включать Debug Mode на рабочем сайте не рекомендуется, если ошибки выводятся на экран. Это может раскрыть конфиденциальную информацию. Всегда ставьте WP_DEBUG_DISPLAY в false и анализируйте ошибки через лог-файл.

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

Также регулярно очищайте и контролируйте размер debug.log, чтобы он не занимал слишком много места.

Как отключить XML-RPC в WordPress для защиты сайта
04.03.2026
Использование хука WooCommerce 'woocommerce_order_status_changed' для кастомной логики
11.05.2026
Как изменить метод отправки писем в WordPress: SMTP и другие решения
10.02.2026
Создание выборочного автоматического упражнения для пользователей WordPress
05.04.2026
Создание и использование пользовательских атрибутов data в WordPress
29.01.2026