Каждый уважающий себя разработчик перед началом работы над темой или плагином запустит отладчик. Собственно, WordPress Codex настоятельно рекомендует разработчикам использовать режим WP_DEBUG при работе над кодом, который они собираются выпускать в мир.

К сожалению, многие разработчики не следуют этому совету просто потому, что забывают о встроенных в WordPress инструментах отладки или просто не умеют с ними работать.

В этой статье я пройдусь по основным имеющимся в наличии средствам отладки для WordPress и покажу вам, насколько они просты в использовании.

Отладка с помощью WP_DEBUG

Основное средство разработки, о котором вам нужно знать — WP_DEBUG.

WP_DEBUG — это константа типа boolean, которая включает режим отладки в WordPress. Она находится в файле wp-config.php в вашей папке WordPress.

Если ее значение установлено "true", вы увидите извещения PHP на страницах сайта (не столько ошибки, сколько полезные для разработчиков сообщения и WordPress сообщения, в частности информация об устаревших функциях).

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

Чтобы включить WP_DEBUG, просто добавьте следующий код в ваш файл wp-config.php:

define( 'WP_DEBUG', true );

Чтобы отключить режим, просто замените "true" на "false". Для WP_DEBUG по умолчанию установлено значение false. WP_DEBUG предоставляет удобный способ поиска решения проблем, если что-то с вашим сайтом пошло не так.

Важно помнить, что WP_DEBUG не должен использоваться на живом сайте. Эта возможность удобна при разработке, но может быть опасной на живом сайте, поскольку текст в уведомлениях PHP может показать детали вашего кода, пути к файлам и другую информацию вашим посетителям.

Записи ошибок с помощью WP_DEBUG_LOG

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

Это очень удобная штука, если вы хотите потом просмотреть сообщения.

Чтобы включить запись логов отладки, просто добавьте в ваш файл wp-config.php следующий код:

define('WP_DEBUG_LOG', true);

Выключение отображения ошибок на сайте с помощью WP_DEBUG_DISPLAY

Если вы не хотите, чтобы ошибки отображались на вашем сайте, вы должны использовать WP_DEBUG_DISPLAY.

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

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

Эта константа должна быть использована в сочетании с WP_DEBUG_LOG.

Чтобы использовать эту возможность, просто добавьте в код вашего файла wp-config.php следующую строку:

define('WP_DEBUG_DISPLAY', false);

Все вместе

Эти три константы легко использовать вместе, если вы хотите включить отладку и запись логов сообщений об ошибках, но хотите скрыть уведомления на вашем сайте:

// Turn debugging on
define('WP_DEBUG', true);

// Tell WordPress to log everything to /wp-content/debug.log
define('WP_DEBUG_LOG', true);

// Turn off the display of error messages on your site
define('WP_DEBUG_DISPLAY', false);

// For good measure, you can also add the follow code, which will hide errors from being displayed on-screen
@ini_set('display_errors', 0);

Не забывайте, что WP_DEBUG используется для локальной разработки и не должен использоваться на живых сайтах.

Источник: wpmudev.org

Вам понравился материал?

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

1 комментарий

сначала новые
по рейтингу сначала новые по хронологии
chumachkin_m

Там есть еще опция для сохранения выполненных SQL запросов define('SAVEQUERIES', true);

define('WP_DEBUG', true);

Все выглядит примерно так:

// Дополнительные параметры для отладки
if (WP_DEBUG) {
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);
@error_reporting(E_ALL ^ ( E_NOTICE & E_DEPRECATED ) );
}

/** Выключаем ревизию постов WP, не нужно для сайтов которые не являются блогами. **/
define('WP_POST_REVISIONS', false);

/* Время автосохранения записи в сек. Сильно короткие инnервалы ставить не имеет смысла.*/
define( 'AUTOSAVE_INTERVAL', 320 );