WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

es:Depurar en WordPress

Depurar código PHP forma parte de cualquier proyecto, pero WordPress viene equipado con sistemas de depuración específicos para simplificar el proceso también como parar estandarizar el código por todo el núcleo, plugins y temas. Esta página describe las varias herramientas de depuración de WordPress y cómo ser más productivo en tu programación tan bien como incrementar la calidad global y la interoperatividad de tu código.

NOTE: Dado que no es obligatorio rendir cuentas a WP_DEBUG en plugins y temas es altamente recomendado que los desarrolladores de plugins y temas usen el modo WP_DEBUG mientras que trabajen en el código que pretendan entregar públicamente. Si tu plugin o tema no es compatible entonces los errores, notificaciones y avisos que lanza harán imposible que otros desarrolladores usen tu plugin/tema mientras que tengan activo WP_DEBUG y tu tema no será nominable para su promoción vía las herramientas oficiales de WordPress.

WP_DEBUG

WP_DEBUG es una constante de PHP (una variable global permanente) que puede ser usada para desencadenar el modo de "depuración" por todo WordPress. Se asume que es falsa por defecto y se establece normalmente a cierta en el archivo wp-config.php de las copias de desarrollo de WordPress.

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

Nota: Los valores true y false del ejemplo no se rodean con apóstrofes (') porque son valores de verdad booleanos (cierto/falso). Si estableces tales constantes a 'false' se interpretará como cierto porque las comillas hacen que sea una cadena en vez de un booleano.

No se recomienda usar WP_DEBUG o las otras herramientas de depuración en sitios de producción, se entiende que son para comprobación local e instalaciones de prueba.

Errores, avisos y noticias de PHP

Activar WP_DEBUG causará que todos los errores noticias y avisos de PHP sean mostrados. Ésto probablemente modifique el comportamiento por defecto de PHP el cual solo muestra los errores fatales y/o enseña una pantalla blanca de la muerte cuando se yerra.

Mostrar todas las noticias y avisos de PHP con frecuencia resulta en mensajes de error por cosas que no parecen rotas, pero que no siguen las convenciones de validación de datos apropiadas dentro de PHP. Estos avisos son fáciles de arreglar una vez que el código relevante ha sido identificado, y el código resultante es casi siempre más resistente a fallos y fácil de mantener.

Funciones y argumentos descatalogados

Activar WP_DEBUG también causara avisos acerca de funciones descatalogadas y argumentos dentro de WordPress que están siendo usados en tu sitio. Éstas son funciones o argumentos que no han sido retirados del núcleo del código aun pero que están declarados para su borrado en un futuro próximo. Los avisos de descatalogación a menudo indican la nueva función que debería usarse al cambio.

WP_DEBUG_LOG

WP_DEBUG_LOG es compañera de WP_DEBUG lo que causa que todos los errores sean también salvados a un fichero de registro debug.log dentro del directorio /wp-content/. Ésto es útil cuando quieres revisar todas las notificaciones más tarde o necesitas ver notificaciones generadas en diferido (p.ej. durante una petición AJAX o ejecución wp-cron).

define('WP_DEBUG_LOG', true);

WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAY es otra compañera de WP_DEBUG que controla si los mensajes de depuración se muestran dentro de las páginas HTML o no. Por defecto es 'cierto' lo cual muestra errores y avisos según se generan. Establecer ésta a falso esconderá todos los errores. Debería usarse conjuntamente con WP_DEBUG_LOG para que los errores puedan ser revisados luego.

define('WP_DEBUG_DISPLAY', false);

SCRIPT_DEBUG

SCRIPT_DEBUG es una constante relacionada que forzará a WordPress a usar las versiones "dev" de los archivos centrales de CSS y Javascript en vez de las versiones minificadas que normalmente se cargan. Ésta es útil cuando estás comprobando modificaciones para cualquier fichero interno .js or .css . Su valor por defecto es false.

define('SCRIPT_DEBUG', true);

SAVEQUERIES

La definición SAVEQUERIES salva las consultas a la base de datos en un array y ese array puede ser mostrado para ayudar a analizar tales consultas. La constante definida como cierta causará que cada consulta sea guardada, cuánto tiempo tardó en ejecutarse, y que función la llamó.

define('SAVEQUERIES', true);

El array se almacena en la global $wpdb->queries.

NOTA: Ésto tendrá un impacto de rendimiento en tu sitio, así que asegúrate de apagarla cuando no estés depurando.

Ejemplo de wp-config.php para depuración

El siguiente código, insertado en tu fichero wp-config.php registrará todos los errores noticias y avisos a un fichero llamado debug.log en el directorio wp-content. También esconderá los errores para que no interrumpan la generación de página.

 // Activar modo WP_DEBUG
define('WP_DEBUG', true);

// Activar registro de depuración al fichero /wp-content/debug.log
define('WP_DEBUG_LOG', true);

// Desactiva mostrar los errores y avisos 
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

// Usa versiones dev de ficheros centrales JS y CSS (solo necesario si estás modificando esos ficheros centrales)
define('SCRIPT_DEBUG', true);

Plugins de depuración

Existen muchos plugins de calidad para la depuración de WordPress que brindan información detallada tanto del sistema en general como de componentes específicos. Algunos de estos plugins son Barra de depuración (Debug Bar) con Consola de Barra de depuración (Debug Bar Console) y Alerta sobre funciones obsoletas (Log Deprecated Notices).

Historia

Previa a la version WordPress 3.1 la constante STYLE_DEBUG se comportaba similarmente a SCRIPT_DEBUG pero afectaba a ficheros CSS en vez de a los Javascript. En 3.1 las dos constantes se fusionaron en una sola SCRIPT_DEBUG, la cual ahora afecta a ambos tipos de ficheros miniaturizados.

Recursos externos