/ Wordpress / Работа с ошибками Wordpress

Работа с ошибками WordPress

HIT

22.10.2019

1061

В данной статье рассмотрим не конкретные ошибки (это уже сделано здесь), а методологию как их выявлять и работать с ними.

Лог ошибок

Включить запись ошибок в лог

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Отловленные ошибки записываются в файл debug.log в папку wp-content.

Показ ошибок только для администратора

Можно использовать специальный GET-параметр для включения режима DEBUG

if ( isset( $_GET['debugmode'] ) && 'debugmode' == $_GET['debugmode'] ) {
	define( 'WP_DEBUG', true );         
} else {
	define( 'WP_DEBUG', false ); 
}

Режим отладки будет доступен по добавке к URL:

/?debugmode=debugmode

Режим отладки по конкретному IP:

if ('YOUR_IP_ADDRESS' == $_SERVER['REMOTE_ADDR']) {
	define('WP_DEBUG', true);
} else {
	define('WP_DEBUG', false);   
}

Ошибки не выводяться

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

error_reporting(0); // отключает сообщения об ошибках
ini_set('display_errors', 0); // отключает показ ошибок на экран

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

error_reporting(E_ALL); // включаем сообщения об ошибках
ini_set('display_errors', 1); // включаем показ ошибок на экран

Но лучше конечно найти где они прописаны и убрать.

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

Не ведется лог ошибок

Это может быть связано с настройками сервера. Потому что на сервере в файле /etc/php-fpm.d/www.conf (в самом конце) по умолчанию установлено:

php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on

Вот эти параметры не могут быть перекрыты вызовом ini_set(), в результате чего сделать вывод лога ошибок в wp-content/debug.log не получается.

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

Запись в лог ошибок

Чтобы занести запись в лог ошибок, например при отладке какого-либо кода, делается это так:

error_log('something..');

Игнорирование ошибок

Некоторые ошибки блокируют работу админки. В этом случае в wp-config можно попробовать это:

ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );

define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

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

Пока нет комментариев. Будь первым!

Работа с ошибками WordPress
Удаление записей при импорте
Рекомендации для васУдаление записей при импортеOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.