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.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow