Кожен розробник, що поважає себе, перед початком роботи над темою або плагіном запустить відладчик. Власне WordPress Codex наполегливо рекомендує розробникам використовувати режим WP_DEBUG під час роботи над кодом, який вони збираються випускати у світ.
На жаль, багато розробників не дотримуються цієї поради просто тому, що забувають про вбудовані в WordPress інструменти налагодження або просто не вміють з ними працювати.
У цій статті я пройдуся основними наявними засобами налагодження для WordPress і покажу вам, наскільки вони прості у використанні.
Налагодження за допомогою WP_DEBUG
Основний засіб розробки, про який вам потрібно знати WP_DEBUG.
WP_DEBUG - це константа типу booleanяка включає режим налагодження в WordPress. Вона знаходиться у файлі WP-config.php у папці WordPress.
Якщо її значення встановленоправда", Ви побачите повідомлення PHP на сторінках сайту (не стільки помилки, скільки корисні для розробників повідомлення та WordPress повідомлення, зокрема інформація про застарілі функції").
Застарілі функції містяться у багатьох релізах WordPress. Важливо знати, чи використовуєте ви застарілу функцію в темі або плагіні, над якими ви працюєте, щоб знайти її заміну.
Щоб увімкнути WP_DEBUG, просто додайте наступний код у ваш файл WP-config.php:
define( 'WP_DEBUG', 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 вашого сайту.
За замовчуванням встановлено значення "правда", тобто всі помилки та попередження відображаються. Змінивши значення на "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);