Отладка в WordPress
Отладка кода важна для любого проекта. WordPress поставляется с системами отладки, разработанными для упрощения процесса, а также для стандартизации кода в ядре, плагинах и темах. На этой странице описываются различные инструменты отладки в WordPress и способы повышения продуктивности кода, а также повышения его общего качества и функциональности. Для не программиста или обычного пользователя эти параметры могут использоваться для отображения подробной информации об ошибке.
WP_DEBUG
WP_DEBUG это константа PHP , используемая для установки режима отладки в WordPress. По умолчанию она имеет значение «false», но может быть установлена как «true» в файле конфигурации wp-config.php на сайтах, на которых проводится отладка.
define( 'WP_DEBUG', true ); define( 'WP_DEBUG', false );
Заметка: значения true и false в примере не заключены в кавычки или апострофы, поскольку являются булевыми (правда/ложь) значениями. Не заключайте их в кавычки (например ‘false’ ), иначе они станут восприниматься как строковые значения. Не рекомендуется включать WP_DEBUG или другие инструменты отладки на рабочих сайтах, отладку рекомендуется производить при локальном тестировании или на разрабатываемых сайтах. Наверх ↑
PHP ошибки, предупреждения, и заметки
Включение WP_DEBUG приведет к отображению всех ошибок, предупреждений и заметок PHP. Скорее всего это изменит поведение по умолчанию PHP, при котором могут отображаться только фатальные ошибки или белый экран. Отображение всех уведомлений и предупреждений PHP часто приводит к сообщениям об ошибках для того, что может быть и не сломано, но нарушает надлежащие правила проверки данных в PHP. Эти предупреждения легко исправить разработчикам, если соответствующий код был идентифицирован. Заметка: Не стоит самостоятельно заниматься исправлением кода ядра, плагинов, тем. Сообщите о проблеме разработчикам соответствующих компонентов, чтобы они внесли исправления в будущих версиях. Наверх ↑
Устаревшие функции и аргументы
Включение WP_DEBUG также будет вызывать уведомления об устаревших функциях и аргументах в WordPress, которые используются на вашем сайте. Это функции или аргументы функций, которые еще не были удалены из основного кода, но должны быть удалены в ближайшем будущем. Уведомления об устаревании часто указывают на новую функцию, которую следует использовать вместо этого. Наверх ↑
WP_DEBUG_LOG
WP_DEBUG_LOG это дополнение к WP_DEBUG которое позволяет сохранять ошибки в файл debug.log. Это полезно если вы хотите посмотреть ошибки позже или посмотреть то, что не выводится на экран (например для AJAX запросов или работы wp-cron). Заметьте, что запись в лог производится внутренней функцией PHP error_log() , она очень удобна для отладки событий AJAX. При установке в значение true , журнал будет сохраняться как wp-content/debug.log на вашем сайте. Вы можете задать альтернативное имя, для сохранения его в другом месте.
define( 'WP_DEBUG_LOG', true ); -или- define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );
Заметка: Для работы WP_DEBUG_LOG нужно включить WP_DEBUG (true). Вы можете независимо от этого отключить WP_DEBUG_DISPLAY . Наверх ↑
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY это другое дополнение для WP_DEBUG , которое контролирует вывод сообщений отладки в HTML код страницы (на экран). Значение по умолчанию — ‘true’, что позволяет видеть ошибки и предупреждения на экране, в момент их возникновения. Установка значения как false спрячет все ошибки, что можно использовать вместе с WP_DEBUG_LOG , чтобы просмотреть ошибки из файла позже.
define( 'WP_DEBUG_DISPLAY', false );
Заметка: Для работы WP_DEBUG_LOG нужно включить WP_DEBUG (true). Вы можете независимо от этого использовать WP_DEBUG_LOG Наверх ↑
SCRIPT_DEBUG
SCRIPT_DEBUG это константа, позволяющая использовать версии для разработки CSS и JavaScript файлов ядра, вместо их оптимизированных версий, которые используются по умолчанию. Константа полезна при тестировани изменений в стандартных файлах .js и .css. По умолчанию — false. define( ‘SCRIPT_DEBUG’, true ); Наверх ↑
SAVEQUERIES
Определение SAVEQUERIES будет сохранять запросы к СУБД в массив, который можно проанализировать. При определении константы как true, будут сохраняться все запросы, время исполнения, функция вызова запроса.
Массив сохраняется в глобальном $wpdb->queries . Заметка: Это сильно снижает производительность вашего сайта. Наверх ↑
Пример файла wp-config.php для отладки
Следующий код в файле wp-config.php включит запись всех ошибок, предупреждений и заметок PHP в файл debug.log внутри папки wp-content. Он также отключит вывод на экран (в код страницы):
// Включить отладку WP_DEBUG define( 'WP_DEBUG', true ); // Включить журнал /wp-content/debug.log define( 'WP_DEBUG_LOG', true ); // Отключить вывод на экран define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); // Использовать версии JS и CSS для разработчика (при тестировании изменений в них) define( 'SCRIPT_DEBUG', true );
Заметка: Это нужно вставить перед /* Это всё, дальше не редактируем. Успехов! */ в файл wp-config.php . Наверх ↑
Плагины для отладки
Внешние ссылки
Как включить вывод ошибок PHP в WordPress
Когда вы занимаетесь разработкой сайта есть смысл включить показ всех PHP ошибок и предупреждений. Ведь они могут помочь в доработке сайта и поиске ошибок.
Например, вы разрабатываете тему или плагин, допустили ошибку в коде. Естественно сайт «упал». А из-за чего не понятно — WordPress показывает стандартное сообщение о технических неполадках.
Вот тут то нам и пригодится показ ошибок PHP.
Для того, чтобы включить показ ошибок, необходимо добавить одну запись в файл wp-config .
Файл wp-config содержит основные параметры и настройки вашего сайта на WordPress. Он хранит такие важные данные как: настройки подключения к Базе Данных, префикс для таблиц БД и адрес для входа в админку, если WordPress установлен в подкаталог.
Добавьте следующий код в файл wp-config :
Данная запись включит отображение всех ошибок и предупреждений, которые могут возникнуть в процессе разработки.
Возможно, эта строка уже присутствует в файле со значением FALSE . В таком случае не нужно дублировать ее, просто измените FALSE на TRUE .
С помощью этого кода вы переведете WordPress в режим отладки (debug mode). Нужно быть готовым к тому, что при включении режима отладки WordPress начнет отображать все предупреждения и ошибки на сайте в самом верху страницы как в админке, так и на самом сайте.
Поэтому, после завершения всех работ либо удалите эту строчку, либо отключите показ ошибок следующей записью: