Отладка PHP-кода является частью любого проекта, но WordPress поставляется со специальными системами отладки, предназначенными для упрощения процесса, а также для стандартизации кода ядра, плагинов и тем. На этой странице описываются различные инструменты отладки в WordPress и рассказывается о том, как повысить продуктивность кодирования, а также повысить общее качество и функциональную совместимость кода.
Для непрограммиста или обычного пользователя эти параметры могут использоваться для отображения подробной информации об ошибке.
WP_DEBUG
— это константа PHP (постоянная глобальная переменная), которую можно использовать для запуска режима «отладки» во всем WordPress. По умолчанию предполагается, что он имеет значение false и обычно устанавливается в значение true в файле wp-config.php на разрабатываемых копиях WordPress.
define( 'WP_DEBUG', true ); define( 'WP_DEBUG', false );
Запись: The true
а также false
значения в примере не окружены апострофами (‘), потому что они являются логическими (истинными / ложными) значениями. Если вы установите константы в 'false'
, они будут интерпретироваться как истинные, потому что кавычки делают их строкой, а не логическим значением.
Не рекомендуется использовать WP_DEBUG
или другие инструменты отладки на действующих сайтах; они предназначены для локального тестирования и промежуточных установок.
Ошибки, предупреждения и уведомления PHP Ошибки, предупреждения и уведомления PHP
Включение WP_DEBUG
приведет к отображению всех ошибок, уведомлений и предупреждений PHP. Это может изменить поведение PHP по умолчанию, которое отображает только фатальные ошибки и / или показывает белый экран смерти при достижении ошибок.
Отображение всех уведомлений и предупреждений PHP часто приводит к сообщениям об ошибках для вещей, которые не кажутся неисправными, но не соответствуют надлежащим соглашениям о проверке данных внутри PHP. Эти предупреждения легко исправить после идентификации соответствующего кода, а результирующий код почти всегда более устойчив к ошибкам и его легче поддерживать.
Наверх ↑
Устаревшие функции и аргументы Устаревшие функции и аргументы
Включение WP_DEBUG
также вызовет уведомления об устаревших функциях и аргументах в WordPress, которые используются на вашем сайте. Это функции или аргументы функций, которые еще не были удалены из основного кода, но должны быть удалены в ближайшем будущем. Уведомления об устаревании часто указывают на новую функцию, которую следует использовать вместо нее.
Наверх ↑
WP_DEBUG_LOG
является дополнением к WP_DEBUG, которое приводит к тому, что все ошибки также сохраняются в файле журнала debug.log. Это полезно, если вы хотите просмотреть все уведомления позже или вам нужно просмотреть уведомления, созданные вне экрана (например, во время запроса AJAX или wp-cron пробег).
Обратите внимание, что это позволяет вам записывать в файл журнала, используя встроенный PHP error_log()
функция, которая может быть полезна, например, при отладке событий Ajax.
При установке на true
, журнал сохраняется в debug.log
в каталоге содержимого (обычно wp-content/debug.log
) в файловой системе вашего сайта. В качестве альтернативы вы можете указать действительный путь к файлу, чтобы файл был сохранен в другом месте.
define( 'WP_DEBUG_LOG', true ); -or- define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );
Запись: за WP_DEBUG_LOG
делать что-либо, WP_DEBUG
должен быть включен (true). Помните, вы можете выключить WP_DEBUG_DISPLAY
независимо.
Наверх ↑
WP_DEBUG_DISPLAY
еще один компаньон для WP_DEBUG
это контролирует, отображаются ли сообщения отладки внутри HTML страниц или нет. По умолчанию установлено значение «истина», что позволяет отображать ошибки и предупреждения по мере их создания. Установка значения false скроет все ошибки. Это следует использовать вместе с WP_DEBUG_LOG
чтобы ошибки можно было просмотреть позже.
define( 'WP_DEBUG_DISPLAY', false );
Запись: за WP_DEBUG_DISPLAY
делать что-либо, WP_DEBUG
должен быть включен (true). Помните, вы можете контролировать WP_DEBUG_LOG
независимо.
Наверх ↑
SCRIPT_DEBUG
— связанная константа, которая заставит WordPress использовать «dev» версии основных файлов CSS и JavaScript, а не минифицированные версии, которые обычно загружаются. Это полезно, когда вы тестируете модификации любых встроенных файлов .js или .css. По умолчанию — false.
define( 'SCRIPT_DEBUG', true );
Наверх ↑
В SAVEQUERIES
Определение сохраняет запросы к базе данных в массив, и этот массив может быть отображен, чтобы помочь проанализировать эти запросы. Константа, определенная как истинная, вызывает сохранение каждого запроса, сколько времени потребовалось для выполнения этого запроса и какая функция его вызвала.
define( 'SAVEQUERIES', true );
Массив хранится в глобальном $wpdb->queries
.
НОТА: Это повлияет на производительность вашего сайта, поэтому обязательно отключите это, когда вы не отлаживаете.
Наверх ↑
Следующий код, вставленный в ваш файл wp-config.php, будет записывать все ошибки, уведомления и предупреждения в файл с именем debug.log в каталоге wp-content. Это также скроет ошибки, чтобы они не прерывали генерацию страницы.
// Enable WP_DEBUG mode define( 'WP_DEBUG', true ); // Enable Debug logging to the /wp-content/debug.log file define( 'WP_DEBUG_LOG', true ); // Disable display of errors and warnings define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); // Use dev versions of core JS and CSS files (only needed if you are modifying these core files) define( 'SCRIPT_DEBUG', true );
НОТА: Вы должны вставить это ПЕРЕД /* That's all, stop editing! Happy blogging. */
в файле wp-config.php.
Наверх ↑
Для WordPress существует множество плагинов отладки, которые отображают дополнительную информацию о внутреннем устройстве либо для конкретного компонента, либо в целом. Вот некоторые примеры:
Наверх ↑