Отладка вашего сайта очень важна для любого проекта, вам нужно будет иметь возможность отлаживать ваш сайт во всех средах, от локальных до живых . Но в зависимости от среды, вы можете отлаживать по-разному.
Например, в вашей локальной среде вы можете выводить все ошибки PHP на экран, чтобы упростить решение проблем, но вы не хотите, чтобы эти ошибки отображались на экране в вашей рабочей среде. Вы не захотите отображать эти ошибки посетителям вашего сайта, но вы также захотите отследить эти ошибки и сохранить их там, где вы сможете увидеть, что происходит не так.
Преимущество хранения этих ошибок позволяет вам заходить позже и исправлять любые ошибки, которые могут происходить на вашем действующем сайте.
WordPress поставляется со встроенной системой отладки, которая позволяет вам отлавливать и отображать ошибки любым удобным для вас способом. Изменение этих настроек в файле wp-config.php позволяет вам изменять методы отладки в различных средах.
WP_DEBUG
WP_DEBUG является PHP константа , которая позволяет поставить WordPress в режим отладки, когда WordPress находится в режиме отладки он позволяет определить , если вы хотите выводить сообщение об ошибке на экране или в отладочный лог — файл.
Если вы хотите включить отладку, вам нужно добавить следующую строку в ваш файл wp-config.php.
// Turn on wp_debug define('WP_DEBUG', true); // Turn off wp_debug define('WP_DEBUG', false);
Когда WP_DEBUG включен, он переопределяет настройки по умолчанию error_reporting в вашем файле php.ini и изменяет его для отображения всех ошибок, уведомлений и предупреждений PHP. Отображение ошибок покажет проблемы, которые сломают ваш код. В уведомлениях и предупреждениях будут отображаться проблемы с кодом, которые могут не взломать сайт, но не соответствуют правильным правилам PHP.
WP_DEBUG_LOG
Если вы хотите записать все ошибки в файл, чтобы потом их можно было расследовать, вам следует использовать константу WP_DEBUG_LOG в файле wp-config.php. Когда для этой константы установлено значение true, все ошибки будут выводиться в файл debug.log, который будет храниться в папке wp-content .
define('WP_DEBUG_LOG', true);
WP_DEBUG_DISPLAY
По умолчанию ошибки WordPress будут отображаться на экране. Если вы просто регистрируете ошибки в файле debug.log, вы можете отключить отображение ошибок на экране, но установив для константы значение false.
define('WP_DEBUG_DISPLAY', false);
SCRIPT_DEBUG
По умолчанию ядро WordPress будет использовать уменьшенные версии файлов CSS и JS, если вы хотите изменить это, чтобы WordPress использовал полную версию dev и CSS и JS, тогда вы можете установить для переменной SCRIPT_DEBUG значение true.
define('SCRIPT_DEBUG', true);
SAVEQUERIES
Для отладки запросов к базе данных вы можете использовать эту константу-переменную SAVEQUERIES , в которой будут храниться все запросы, сделанные в базе данных, и время, необходимое для их выполнения. Помните, что это может замедлить работу вашего сайта, поэтому убедитесь, что он включен только во время отладки.
define('SAVEQUERIES', true);
Чтобы проверить эти запросы, вы можете получить к ним доступ в глобальной переменной $ wpdb .
echo '<pre>'; var_dump($wpdb->queries); echo '</pre>';
Изменение отладки в зависимости от среды
Понимание, что означают эти различные настройки, означает, что мы можем быть уверены, что делаем только определенные вещи в зависимости от среды.
Dev
В среде разработки вы хотели бы включить отладку, отобразить их на экране и сохранить ошибки в файле отладки.
UAT
В среде UAT вы все равно хотите отлаживать, но не хотите отображать их на экране, чтобы мы могли сохранить их в файле отладки.
Live
В среде Live вы, возможно, исправите все ошибки в своем коде, чтобы можно было отключить отладку.
Чтобы изменить это в wp-config.php, вы можете использовать следующий код.
switch( $_SERVER['SERVER_NAME']) { // Dev case 'dev.example.com': define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('ENV', 'dev'); break; // UAT case 'uat.example.com': define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); define('ENV', 'uat'); break; // Live case 'live.example.com': define('WP_DEBUG', false); define('ENV', 'live'); break; }