Правильная отладка в WordPress

Частенько возникает нужда сделать отладку не на странице, а поймать её как-то в файл. В WordPress для этого есть нативное решение. В конфиге пишем:

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

После этого ошибки будут записываться в:

/wp-content/debug.log

Пользуемся функцией error_log(), чтобы получить свою отладку.

WordPress ещё имеет особенность не замечать что прописано у вас в error_reporting. Вместо этого он использует свой набор настроек и может писать в лог всякий deprecated-буллщит из-за того, что у вас слишком свежая версия PHP. Как исправить:

set_error_handler(function($errno, $errstr, $errfile, $errline) {
	// Игнорируем deprecated
	if ($errno === E_DEPRECATED || $errno === E_USER_DEPRECATED) {
		return true;
	}
	// Всё остальное пишем стандартно
	return false;
});