Статьи

Отладка WordPress: 11 полезных советов и приемов

Отладка является необходимым навыком для любого разработчика. Этот урок покажет вам 11 мощных способов отладки ошибок WordPress и PHP.

Первым элементом в списке является знаменитый WP_Debug, а затем мы перейдем к более сложным методам.

Отладка WordPress

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

A — Примечание: это наименее важное сообщение об ошибке, которое вы увидите в PHP. Это не обязательно означает, что что-то не так, но возможное улучшение предлагается.

Пример: нулевой элемент передан функции, которая ожидает строку.

B — Предупреждение: это более серьезная ошибка, но она не приводит к завершению скрипта.

Пример: предоставление include () файла, который не существует.

C — Фатальная ошибка: это опасный индикатор того, что что-то идет не так, и сценарий завершается.

Пример: вызов несуществующей функции.

1 — WP_DEBUG

WordPress имеет глобальную константу для указания необходимого уровня отладки: 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 ()

Еще один встроенный инструмент WordPress для отладки — is_wp_error () ;. Это метод проверки того, имеет ли определенный результат тип WP_Error. WP_Error на самом деле является возвращаемым объектом, который вы должны получить, если метод WordPress завершится неудачно.

Пример:

 $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 — Панель отладки

Еще одним полезным инструментом для отладки ошибок WordPress является панель отладки . Это очень удобный инструмент для получения полезной информации о каждой странице вашего сайта.

После установки вы найдете новую кнопку отладки. При нажатии на него производится анализ запросов, шаблонов, установка PHP и много другой полезной информации.

4 — Тестовый сайт

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

5 — просто показать крючки

Simply Show Hooks — хороший плагин для отображения каждого хука, который работает на любой странице. Если вы столкнетесь с ситуацией, когда все идеи создания отчетов об ошибках не работают, и вы это сделаете, то наступит время для извлечения всех и всех работающих хуков.

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

6 — Отчет об ошибках WPDB

Если вы используете класс wpdb для работы с вашей базой данных, вам всегда понадобятся отчеты об ошибках. Будь то для проверки правильности ваших запросов или для отображения сообщений об ошибках для отладки.

Пример:

 global $wpdb;
// Before running your query:
$wpdb->show_errors = TRUE;
$result = $wpdb->get_results("SELECT field_value FROM table_name");
if(! $result){
    $wpdb->print_error();
    // Or you can choose to show the last tried query.
    echo $wpdb->last_query;
}

7 — Журналы ошибок сервера

В какой-то момент ни WordPress, ни PHP не смогут обнаружить некоторые ошибки кодирования. Например, если ваш скрипт превысил максимально допустимое время выполнения, вы не получите сообщение об ошибке PHP. Скорее всего, Apache (или система, установленная на вашем сервере) отобразит что-то вроде «Internal Server Error».

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

Вы можете проконсультироваться с вашим веб-хостингом о том, где хранится логирование. Обычно это что-то в папке журналов.

8 — регистрация ошибок PHP

PHP имеет свой собственный уровень сообщений об ошибках для хранения проблем, решаемых за пределами WordPress. Это чрезвычайно полезно, особенно если что-то вне WordPress работает и вызывает некоторые проблемы.

Вы можете начать с настройки файла 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 не обнаружил синтаксическую ошибку, вам понадобится более мощный инструмент. Мощная IDE, такая как PhpStorm, будет ответом на более сложную отладку и разбиение вашего кода на части.

В такой ситуации, когда вы сохраняете строку в переменной и пытаетесь ее распечатать, но ничего не происходит. Использование IDE может обнаружить, что вы делаете что-то неправильно, например, переопределяете эту переменную позже в своем коде. Вот почему настоятельно рекомендуется использовать мощную IDE, такую ​​как PhpStorm, Eclipse или любой другой инструмент, который вы предпочитаете.

11 — Отключение кеша браузера

Если вы работаете на внешней стороне вашего сайта, то вам нужно отключить кеш браузера. Это необходимо, потому что, если вы работаете над своим кодом JavaScript, и он не обновляет или, что еще хуже, обновляет, но не отображает новые ошибки, вам необходимо отключить кэш.

Отключение кэша означает, что вы просите браузер прекратить работу со старыми сохраненными файлами вашего сайта. Это включает в себя файлы CSS и JavaScript.

Чтобы отключить кеш браузера Google Chrome, откройте DevTools, щелкнув правой кнопкой мыши любой веб-элемент. Затем нажмите на вкладку Сеть на панели инструментов. Наконец, установите флажок Отключить кэш в верхней части.

Вывод

Вышеприведенные 11 советов могут быть вашим руководством для процесса отладки. Хотя отладка может быть утомительной во многих случаях, но вышеупомянутые уловки могут сделать весь процесс намного проще.

Дайте мне знать, если у вас есть какие-либо советы по отладке WordPress, которыми вы хотели бы поделиться, пожалуйста, сделайте это в комментариях ниже!