WordPress
Depuración
Buscar..
Introducción
https://codex.wordpress.org/Debugging_in_WordPress
La depuración del código PHP es parte de cualquier proyecto, pero WordPress viene con sistemas de depuración específicos diseñados para simplificar el proceso, así como para estandarizar el código en el núcleo, los complementos y los temas.
Observaciones
Plugins para depuración en WordPress:
WP_DEBUG
WP_DEBUG
es una constante de PHP (una variable global permanente) que se puede usar para activar el modo "depurar" en WordPress. Se asume que es falso por defecto y generalmente se establece en verdadero en el archivo wp-config.php
en las copias de desarrollo de WordPress.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );
WP_DEBUG_LOG
WP_DEBUG_LOG
es un complemento de WP_DEBUG que hace que todos los errores también se guarden en un archivo de registro debug.log dentro del directorio / wp-content /. Esto es útil si desea revisar todos los avisos más adelante o si necesita ver los avisos generados fuera de la pantalla (por ejemplo, durante una solicitud AJAX o la ejecución de wp-cron).
//enable
define( 'WP_DEBUG_LOG', true );
//disable
define( 'WP_DEBUG_LOG', false );
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY
es otro compañero de WP_DEBUG que controla si los mensajes de depuración se muestran dentro del HTML de las páginas o no. El valor predeterminado es "verdadero", que muestra los errores y advertencias a medida que se generan. Establecer esto en falso ocultará todos los errores. Esto debe usarse junto con WP_DEBUG_LOG para que los errores puedan revisarse más adelante. Nota: para que WP_DEBUG_DISPLAY haga algo, WP_DEBUG debe estar habilitado (verdadero).
//enable
define( 'WP_DEBUG_DISPLAY', true );
//disable
define( 'WP_DEBUG_DISPLAY', false );
SCRIPT_DEBUG
SCRIPT_DEBUG
es una constante relacionada que obligará a WordPress a usar las versiones "dev" de los archivos principales de CSS y JavaScript en lugar de las versiones mínimas que normalmente se cargan. Esto es útil cuando está probando modificaciones a cualquier archivo .js o .css integrado. El valor predeterminado es falso.
//enable
define( 'SCRIPT_DEBUG', true );
//disable
define( 'SCRIPT_DEBUG', false );
Guardias
La definición de GUARDADO guarda las consultas de la base de datos en una matriz y esa matriz se puede mostrar para ayudar a analizar esas consultas. La constante definida como verdadera hace que cada consulta se guarde, cuánto tiempo tardó en ejecutarse y qué función la llamó. NOTA: Esto tendrá un impacto en el rendimiento de su sitio, así que asegúrese de desactivarlo cuando no esté realizando la depuración.
define( 'SAVEQUERIES', true );
La matriz se almacena en el
global $wpdb->queries;
Ejemplo wp-config.php y buenas prácticas para la depuración
El siguiente código, insertado en su archivo wp-config.php, registrará todos los errores, avisos y advertencias en un archivo llamado debug.log en el directorio wp-content. También ocultará los errores para que no interrumpan la generación de páginas.
// 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 );
Buena práctica Si desea agregar mensajes personalizados al registro de depuración, agregue el siguiente código en su complemento o 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 );
}
}
}
}
Ver registros en un archivo separado
Cuando tiene una llamada ajax, es extremadamente difícil obtener un registro desde dentro de la función de devolución de llamada. Pero si habilitas la depuración
define('WP_DEBUG', true);
y luego, después de eso, agrega
ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
tendrá un archivo error.log.txt
en su carpeta raíz donde se encuentran todos sus registros. Incluso puedes registrarlos con
error_log( print_r( 'what I want to check goes here', true) );
dentro de tu codigo Esto hará que tu vida sea mucho más fácil.