Кожен розробник, що поважає себе, перед початком роботи над темою або плагіном запустить відладчик. Власне 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 використовується для локальної розробки та не повинен використовуватись на живих сайтах.





















Коментарі до запису: 1
Є ще опція для збереження виконаних 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);
/* Час автозбереження запису в с. Сильно короткі інтервали ставити не має сенсу.
define( 'AUTOSAVE_INTERVAL', 320);