Поиск…


Вступление

https://codex.wordpress.org/Debugging_in_WordPress

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

замечания

Плагины для отладки в WordPress:

WP_DEBUG

WP_DEBUG - это постоянная PHP (постоянная глобальная переменная), которая может использоваться для запуска режима «отладки» в WordPress. Предполагается, что он по умолчанию является ложным и обычно устанавливается в true в файле wp-config.php на копии разработки WordPress.

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

WP_DEBUG_LOG

WP_DEBUG_LOG является компаньоном WP_DEBUG, который заставляет все ошибки также сохраняться в файле журнала debug.log в каталоге / wp-content /. Это полезно, если вы хотите просмотреть все уведомления позже или просмотреть заметки, созданные вне экрана (например, во время запроса AJAX или прогона wp-cron).

//enable
define( 'WP_DEBUG_LOG', true );

//disable
define( 'WP_DEBUG_LOG', false );

WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAY является еще одним компаньоном WP_DEBUG, который контролирует, отображаются ли отладочные сообщения внутри HTML-страниц или нет. Значение по умолчанию - «true», которое показывает ошибки и предупреждения по мере их создания. Установка этого значения в false приведет к скрыть все ошибки. Это должно использоваться в сочетании с WP_DEBUG_LOG, чтобы ошибки можно было рассмотреть позже. Примечание: для WP_DEBUG_DISPLAY что-то делать, WP_DEBUG должен быть включен (true).

//enable
define( 'WP_DEBUG_DISPLAY', true );

//disable
define( 'WP_DEBUG_DISPLAY', false );

SCRIPT_DEBUG

SCRIPT_DEBUG - связанная константа, которая заставит WordPress использовать «dev» версии базовых файлов CSS и JavaScript, а не мини-версии, которые обычно загружаются. Это полезно, если вы тестируете модификации любых встроенных файлов .js или .css. Значение по умолчанию - false.

//enable
define( 'SCRIPT_DEBUG', true );

//disable
define( 'SCRIPT_DEBUG', false );

SAVEQUERIES

Определение SAVEQUERIES сохраняет запросы базы данных к массиву и этот массив может отображаться для анализа этих запросов. Константа, определенная как истина, заставляет каждый запрос быть сохраненным, как долго выполнялся этот запрос для выполнения и какая функция называла его. ПРИМЕЧАНИЕ. Это повлияет на ваш сайт, поэтому обязательно отключите его, если вы не выполните отладки.

define( 'SAVEQUERIES', true );

Массив хранится в

global $wpdb->queries;

Пример wp-config.php и передовая практика для отладки

Следующий код, вставленный в ваш файл wp-config.php, будет регистрировать все ошибки, уведомления и предупреждения в файле debug.log в каталоге wp-content. Это также скроет ошибки, чтобы они не прерывали создание страниц.

 // Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );

// Disable display of errors and warnings 
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define( 'SCRIPT_DEBUG', true );

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

//Checking is function_exists  
    if ( !function_exists( 'print_to_log' ) ) {
            //function writes a message to debug.log if debugging is turned on.
            function print_to_log( $message )
            {
                if ( true === WP_DEBUG ) {
                    if ( is_array( $message ) || is_object( $message ) ) {
                        error_log( print_r( $message, true ) );
                    } else {
                        error_log( $message );
                    }
                }
            }
        }

Просмотр журналов в отдельном файле

Когда у вас есть вызов ajax, чрезвычайно сложно получить журнал изнутри функции обратного вызова. Но если вы включите отладку

define('WP_DEBUG', true);

а затем после этого добавить

ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

у вас будет файл error.log.txt в корневой папке, где находятся все ваши журналы. вы можете даже зарегистрировать их с помощью

error_log( print_r( 'what I want to check goes here', true) );

внутри вашего кода. Это сделает вашу жизнь намного легче.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow