Sök…


Introduktion

https://codex.wordpress.org/Debugging_in_WordPress

Debugging PHP-kod är en del av alla projekt, men WordPress levereras med specifika felsökningssystem utformade för att förenkla processen samt standardisera koden över kärnan, plugins och teman.

Anmärkningar

Plugins för felsökning i WordPress:

WP_DEBUG

WP_DEBUG är en PHP-konstant (en permanent global variabel) som kan användas för att utlösa "felsökning" -läget i hela WordPress. Det antas att det är felaktigt som standard och är vanligtvis inställt på true i wp-config.php filen på utvecklingskopior av WordPress.

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

WP_DEBUG_LOG

WP_DEBUG_LOG är en följeslagare till WP_DEBUG som gör att alla fel också sparas i en debug.log-loggfil i / wp-content / katalogen. Detta är användbart om du vill granska alla meddelanden senare eller behöver se meddelanden som genereras utanför skärmen (t.ex. under en AJAX-begäran eller wp-cron-körning).

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

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

WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAY är en annan följeslagare till WP_DEBUG som styr om felsökningsmeddelanden visas i HTML-sidorna eller inte. Standardvärdet är "sant" som visar fel och varningar när de genereras. Om du ställer in detta till falskt döljer alla fel. Detta bör användas tillsammans med WP_DEBUG_LOG så att fel kan granskas senare. Obs: för att WP_DEBUG_DISPLAY ska göra någonting måste WP_DEBUG vara aktiverad (true).

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

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

SCRIPT_DEBUG

SCRIPT_DEBUG är en relaterad konstant som kommer att tvinga WordPress att använda "dev" -versionerna av centrala CSS- och JavaScript-filer snarare än de minifierade versionerna som normalt laddas. Detta är användbart när du testar ändringar av inbyggda .js- eller .css-filer. Standard är falsk.

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

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

SAVEQUERIES

SAVEQUERIES-definitionen sparar databasfrågorna i en matris och den arrayen kan visas för att hjälpa till att analysera dessa frågor. Konstanten som definieras som sant gör att varje fråga sparas, hur lång tid frågan tog att utföra och vilken funktion som kallas den. OBS! Detta kommer att ha en inverkan på prestanda på din webbplats, så se till att stänga av den när du inte felsöker.

define( 'SAVEQUERIES', true );

Arrayen lagras i

global $wpdb->queries;

Exempel wp-config.php och god praxis för felsökning

Följande kod, infogad i din wp-config.php-fil, loggar alla fel, meddelanden och varningar till en fil som heter debug.log i wp-innehållskatalogen. Det döljer också felen så att de inte avbryter sidgenerering.

 // 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 );

God praxis Om du vill lägga till anpassade meddelanden till felsökningslogg lägg till följande kod i din plugin eller tema.

//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 );
                    }
                }
            }
        }

Se loggar i en separat fil

När du har ett ajax-samtal är det extremt svårt att få en logg från insidan av återuppringningsfunktionen. Men om du aktiverar felsökningen

define('WP_DEBUG', true);

och sedan efter att lägga till

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

du har en error.log.txt fil i din rotmapp där alla dina loggar finns. du kan till och med logga in dem

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

inuti din kod. Detta kommer att göra ditt liv mycket enklare.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow