WordPress
Debugging
Zoeken…
Invoering
https://codex.wordpress.org/Debugging_in_WordPress
Foutopsporing PHP-code is onderdeel van elk project, maar WordPress wordt geleverd met specifieke foutopsporingssystemen die zijn ontworpen om het proces te vereenvoudigen en code te standaardiseren over de hele kern, plug-ins en thema's.
Opmerkingen
Plug-ins voor foutopsporing in WordPress:
WP_DEBUG
WP_DEBUG
is een PHP-constante (een permanente globale variabele) die kan worden gebruikt om de "debug" -modus in WordPress te activeren. Het wordt standaard verondersteld onwaar te zijn en wordt meestal ingesteld op true in het wp-config.php
op ontwikkelingskopieën van WordPress.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );
WP_DEBUG_LOG
WP_DEBUG_LOG
is een aanvulling op WP_DEBUG die ervoor zorgt dat alle fouten ook worden opgeslagen in een logboekbestand debug.log in de map / wp-content /. Dit is handig als u alle kennisgevingen later wilt bekijken of off-screen gegenereerde kennisgevingen wilt bekijken (bijvoorbeeld tijdens een AJAX-aanvraag of wp-cron-run).
//enable
define( 'WP_DEBUG_LOG', true );
//disable
define( 'WP_DEBUG_LOG', false );
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY
is een andere aanvulling op WP_DEBUG die bepaalt of foutopsporingsberichten worden weergegeven in de HTML van pagina's of niet. De standaardwaarde is 'true', die fouten en waarschuwingen weergeeft wanneer deze worden gegenereerd. Als u dit op false instelt, worden alle fouten verborgen. Dit moet worden gebruikt in combinatie met WP_DEBUG_LOG zodat fouten later kunnen worden gecontroleerd. Opmerking: om WP_DEBUG_DISPLAY iets te laten doen, moet WP_DEBUG zijn ingeschakeld (true).
//enable
define( 'WP_DEBUG_DISPLAY', true );
//disable
define( 'WP_DEBUG_DISPLAY', false );
SCRIPT_DEBUG
SCRIPT_DEBUG
is een gerelateerde constante die WordPress dwingt om de "dev" -versies van CSS-kernbestanden en JavaScript-bestanden te gebruiken in plaats van de verkleinde versies die normaal worden geladen. Dit is handig wanneer u wijzigingen in ingebouwde JS- of CSS-bestanden test. Standaard is false.
//enable
define( 'SCRIPT_DEBUG', true );
//disable
define( 'SCRIPT_DEBUG', false );
SAVEQUERIES
De SAVEQUERIES-definitie slaat de databasequery's op in een array en die array kan worden weergegeven om deze query's te helpen analyseren. De constante die als true is gedefinieerd, zorgt ervoor dat elke query wordt opgeslagen, hoe lang het duurt om die query uit te voeren en welke functie het noemde. OPMERKING: dit heeft invloed op de prestaties van uw site, dus zorg ervoor dat u dit uitschakelt wanneer u niet aan het debuggen bent.
define( 'SAVEQUERIES', true );
De array wordt opgeslagen in de
global $wpdb->queries;
Voorbeeld wp-config.php en goede praktijken voor foutopsporing
De volgende code, ingevoegd in uw wp-config.php-bestand, registreert alle fouten, meldingen en waarschuwingen in een bestand met de naam debug.log in de wp-content-directory. Het verbergt ook de fouten zodat ze het genereren van pagina's niet onderbreken.
// 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 );
Goede praktijk Als u aangepaste berichten aan het foutopsporingslogboek wilt toevoegen, voegt u de volgende code toe aan uw plug-in of thema.
//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 );
}
}
}
}
Zie logboeken in een afzonderlijk bestand
Wanneer u een Ajax-oproep hebt, is het uiterst moeilijk om een logboek van de callback-functie te krijgen. Maar als u foutopsporing inschakelt
define('WP_DEBUG', true);
en daarna toevoegen
ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
je hebt een error.log.txt
bestand in je root map waar al je logs zich bevinden. u kunt ze zelfs aanmelden met
error_log( print_r( 'what I want to check goes here', true) );
in uw code. Dit maakt je leven een stuk eenvoudiger.