Налагодження WordPress: 11 хороших порад і технік

1

Від автора: для розробника вкрай важливо вміти налагоджувати код. У цьому уроці я розповім вам про 11 способів по налагодженню WordPress і помилок PHP. Першим у списку стоїть знаменитий WP_Debug, після чого ми переключаємося на більш просунуті методи.

Спочатку давайте наведемо типи поширених помилок в PHP:

A. Зауваження: повідомлення про помилку з найнижчим рівнем важливості в PHP. Не факт, що ваш код неправильний, просто в якихось місцях його можна переписати. Приклад: у функцію, яка очікує рядок, передано null.

B. Попередження: більш серйозна помилка, але вона не припиняє роботу скрипта. Приклад: підключення неіснуючого файлу через include().

C. Фатальна помилка: небезпечний індикатор того, що щось дійсно пішло не так, і скрипт був зупинений. Приклад: виклик неіснуючої функції.

1 – константа WP_DEBUG

В WP існує глобальна константа, за допомогою якої можна проводити відладку на певному рівні – WP_DEBUG. Разом з цією константою йдуть і дві інші не менш важливі — WP_DEUBG_DISPLAY і WP_DEBUG_LOG.

З допомогою WP_DEBUG можна включати і вимикати режим налагодження. WP_DEUBG_DISPLAY ховає і показує помилки. WP_DEBUG_LOG зберігає помилки в wp-content/debug.log. Задати true або false для цих трьох констант можна у файлі wp-config.php:

define(«WP_DEBUG», true);
define(«WP_DEBUG_DISPLAY», true);
define(«WP_DEBUG_LOG», true);

2 – метод is_wp_error()

Також для налагодження в WP можна скористатися методом is_wp_error();. Даний метод перевіряє передане значення на тип WP_Error. WP_Error – об’єкт, який можна отримати в разі невдалого виконання методу. Приклад:

$post = array(
‘post_title’ => ‘Test post’,
‘post_content’ => ‘This is my post.’,
‘post_status’ => ‘publish’,
‘post_author’ => 1
);
$result = wp_insert_post( $my_post );
if(is_wp_error($result)){
echo $return->get_error_message();
}

Код вище намагається додати нову статтю з допомогою методу wp_insert_post(). Якщо метод не відпрацює, нам повернеться об’єкт WP_Error. Даний об’єкт можна зловити і витягнути з нього повідомлення про помилку.

3 – плагін Debug Bar

Для налагодження помилок в WP можна скористатися плагіном Debug Bar. За допомогою цього корисного інструменту можна отримати інформацію щодо всіх сторінок сайту.

Після установки у вас з’явиться нова кнопка для налагодження. По кліку на неї можна провести аналіз запитів, шаблонів, PHP установок і т. д.

4 – тестовий сайт

Вкрай важливо мати кілька копій сайту: справжню, тестову і для розробки. Зазвичай У мене є дві установки WP на один сайт. Це дуже важливо, адже ви не хочете, щоб ваші скрипти припиняли роботу, як тільки ви включили повідомлення про помилки.

5 – плагін Simply Show Hooks

Simply Show Hooks – плагін, що показує всі хуки, які є на сторінці. Якщо у вас виникла така ситуація, коли всі звіти не знаходять помилку, то вам доведеться виловлювати всі запущені хуки.

За допомогою даного плагіна можна подивитися всі запущені на сторінці дій і фільтри. Код кожного хука можна проаналізувати і налагодити. Також плагін дозволяє визначити пріоритет хуків.

6 – звіт про помилки WPDB

Якщо для роботи з базою даних ви використовуєте клас wpdb, вам знадобиться звіт про помилки. Не важливо, чи це просто перевірка правильності роботи запитів або відображення повідомлень про помилки. Приклад:

global $wpdb;
// перед надсиланням запиту:
$wpdb->show_errors = TRUE;
$result = $wpdb->get_results(«SELECT field_value FROM table_name»);
if(! $result){
$wpdb->print_error();
// чи можна показувати останню спробу.
echo $wpdb->last_query;
}

7 – логи помилок сервера

На якомусь етапі WP ні PHP не зможуть відловити помилки в коді. Приміром, якщо скрипт перевищив максимальний час виконання, PHP не видасть помилку. А ось Apache (або інший сервер) видасть щось типу «Internal Server Error». У такій ситуації потрібно відкрити файл логів з помилками і подивитися, де ж закралася помилка: в PHP або в WP. Дізнатися, де зберігаються логи можна у хостинг-провайдера. Зазвичай папка називається logs.

8 – логи помилок PHP

В PHP є свій рівень повідомлень про помилки. Дуже корисна штука, особливо якщо запускається щось не з WP і викликає ряд якихось проблем. Включити логи про помилки та вказати місце їх зберігання можна у файлі php.ini.

error_reporting = E_ALL | E_STRICT
error_log = /var/log/php_error.log

Рядки вище включають звіти про помилки і ставлять спеціальний шлях для зберігання. Також можна запустити функцію phpinfo() і перевірити error_log.

9 – перевірка синтаксису PHP

Якщо ваш хостинг-провайдер обмежив доступ до файлу php.ini, або у вас немає доступу до логів помилок, ситуація дещо ускладнюється. Однак в мережі повно інструментів для вирішення проблеми, коли перед вами порожня сторінка, а помилок немає. Один з таких інструментів — PHP Code Checker.

PHP Code Checker – інструмент для перевірки помилок синтаксису. Він знаходить пропущені крапки з комою і фігурні дужки – дуже зручна штука.

10 – PHP IDE

Якщо PHP Code Checker не знайшов помилок в синтаксисі, потрібно вдатися до більш потужному інструменту. Потужна середовище розробки типу PhpStorm підійде для більш поглибленого налагодження і розіб’є ваш код на частини.

Ця IDE допомагає в таких ситуаціях, коли ви катуєте роздрукувати змінну, в якій зберігається якась рядок, але нічого не відбувається. Бути може, десь у коді ви переписуєте цю змінну. Дуже важливо працювати в потужній середовищі розробки типу PhpStorm, Eclipse або інший.

11 – відключення кешу браузера

Якщо ви працюєте на front-end’е сайту, тоді вам потрібно відключити кеш в браузері. Це обов’язковий крок, так як якщо ви працюєте з JS кодом, а він не оновлено або оновлено, але не показує помилок, що ще гірше, вам доведеться відключити кеш.
Відключення кешу говорить браузеру, щоб той більше не працював зі старими файлами сайту, які зберігаються на вашому жорсткому диску. Це відноситься до файлів CSS і JS.

Щоб відключити кеш в браузері Chrome, відкрийте панель розробника, клікнувши правою кнопкою миші по будь-якому елементу сторінки. Перейдіть у вкладку мережа. Поставте галочку на пункті Disable Cache вгорі.

Висновок

Ці 11 рад – ваше керівництво по налагодженню. Сама налагодження може бути дуже стомлюючої в більшості випадків, але ці поради зроблять цей процес простіше. Пишіть свої поради щодо налагодження WP в коментарях!