Depuración de WordPress: la guía esencial
Publicado: 2021-02-11Independientemente del nivel de desarrollador de WordPress que tenga, hay un problema al que se enfrentará constantemente: errores. Incluso los desarrolladores más experimentados no pueden codificar consistentemente de una manera que no produzca errores. De hecho, la depuración de WordPress puede ayudarlo a aprender aún más sobre la plataforma.
Si tiene experiencia previa en programación, es probable que haya tenido errores durante la compilación o el tiempo de ejecución. A menos que haya tirado la toalla y hayas arrojado el proyecto, es probable que hayas pasado algún tiempo revisando el código y rastreando el problema. La dinámica con WordPress es la misma.
A diferencia de cuando programa en un lenguaje de programación común, los errores de WordPress no se imprimen simplemente en la página. Esto se debe a que los registros de depuración suelen contener información confidencial, como las credenciales de las bases de datos. WordPress, en cambio, colocará esos registros en archivos en su servidor no accesibles al público.
Afortunadamente, a diferencia de las computadoras que pesaban treinta toneladas desarrolladas por el Ejército de los EE. UU., ¡No tendrá que eliminar literalmente los errores muertos de su máquina para lograr esto! Ahora que tenemos algo de contexto, echemos un vistazo más técnico a lo que entra en el proceso de depuración de WordPress.
Explicación de la depuración de WordPress
Como probablemente sepa, WordPress se desarrolla utilizando PHP. Eso significa que la guía oficial de WordPress sobre depuración, así como la guía oficial de depuración de PHP, serán excelentes recursos para ayudarte en el camino.
Para poder depurar, WordPress requiere que tenga definida una variable PHP global. Repasaremos exactamente cómo hacerlo en la siguiente sección.
Es importante distinguir en qué se diferencia el proceso de depuración de PHP del proceso de depuración de WordPress. Con PHP vanilla, solo se muestran dos tipos de errores de forma predeterminada. Uno es un "error fatal", lo que significa que es tan grave que la página ni siquiera se puede cargar. La otra es simplemente mostrarle al usuario una página en blanco si hay un "error grave sensible". En otras palabras, PHP sabe que imprimir el mensaje de error completo podría representar un riesgo para la seguridad. Esta configuración se puede modificar fácilmente en PHP.
WordPress, por otro lado, es un poco más prolijo cuando se trata de depurar. Si simplemente habilita la depuración de WordPress y no la personaliza, se mostrarán todos los niveles de error, advertencia e incluso elementos informativos para los desarrolladores. Eso significa que se mostrará todo, desde errores fatales hasta un mensaje técnico sobre cómo debe optimizar una sección de JavaScript. Si bien esto es extremadamente útil para los desarrolladores, probablemente no sea el mejor contenido para mostrar a los usuarios.
Otra característica única es que se le notificará sobre las funciones PHP específicas de WordPress que han quedado obsoletas. Las funciones que han quedado obsoletas son las que pueden seguir funcionando ahora, pero se dejará de admitirlas en el futuro. Por lo general, esto también significa que existe una forma mejor y más rápida de realizar el mismo proceso.
Sabemos que probablemente no esté entusiasmado con la depuración de WordPress, pero es fundamental si desea mantener un blog o sitio funcional. Sin embargo, antes de comenzar a editar archivos, asegúrese de usar primero un complemento de respaldo de WordPress confiable. De esta manera, si accidentalmente deja su sitio inoperable, ¡puede restaurar todo con solo unos pocos clics!
¡Ahora, echemos un vistazo a cómo podemos ponernos en marcha!
¿Cómo habilito la depuración en WordPress?
Para iniciar el proceso de depuración de WordPress, necesitaremos un par de líneas de PHP.
Encienda su editor de texto favorito (¡siempre que su editor de texto favorito no sea el Bloc de notas de Windows!). Si necesita tomar uno, Notepad ++ es un editor de texto de código abierto de uso común que admite casi todos los lenguajes de programación.
A continuación, descargue una copia de su archivo wp-config.php. ¡No edite el archivo original! Simplemente cargaremos la versión modificada una vez que hayamos terminado.
Una vez que haya abierto wp-config.php en su editor de texto, deberá agregar la siguiente línea de código. Primero, búsquelo para asegurarse de que aún no lo tiene; PHP se vuelve muy infeliz si define la misma variable dos veces.
define( 'WP_DEBUG', true );
Todo lo que hace esta línea de código es establecer esa variable PHP global llamada WP_DEBUG al valor booleano de verdadero.
Del mismo modo, si desea desactivar la función de depuración de WordPress, que le acaba de poner en la línea opuesta de código:
define( 'WP_DEBUG', false );
Esto activa la depuración, ¡pero no es muy útil si no sabemos cómo encontrar la información que se genera!
¿Dónde está el registro de depuración de WordPress?
Técnicamente, hay dos respuestas a esta pregunta, y la respuesta exacta depende de su elección.
Como dijimos, una forma es simplemente colocar define ('WP_DEBUG', verdadero) ;. Esto usa la configuración predeterminada del registro de depuración de WordPress, que crea automáticamente un archivo si no existe (o se agrega a él si existe) en la ubicación wp-content / debug.log.
Sin embargo, existen varias razones por las que podría quererlo en una ubicación diferente. Por ejemplo, es posible que desee tenerlo en una ubicación donde una herramienta de depuración de terceros pueda acceder a él. Para personalizar dónde se coloca el registro de depuración, puede habilitar la depuración de esta manera:
define( 'WP_DEBUG_LOG', '/best-wp-dev/errors.log' );
Explicación del registro de depuración de WordPress
El nivel de detalle de la información en su registro de depuración de WordPress depende de cómo lo configure. Si simplemente lo habilita sin modificaciones adicionales, registrará prácticamente todos los eventos que causan un error, usan una función obsoleta o no son óptimos.
Dado que WordPress está construido sobre PHP, su registro mostrará todos los errores y advertencias de PHP lanzados. También contendrá la fecha, la hora y la dirección IP asociadas con cada evento. Desafortunadamente, también podrá ver la salida (muy) detallada de PHP sobre muchas cosas, como el estilo de código que no le gusta, la validación de datos que cree que debería fortalecerse y más.
Especialmente para las personas que recién comienzan a depurar WordPress, mirar el archivo de registro puede ser bastante abrumador. Sin embargo, debe recordar que solo son necesarios algunos elementos.
Depuración frente a registro
Aunque su objetivo es lograr el mismo objetivo, es importante que comprenda la diferencia entre depurar y registrar. En otras palabras, la línea define ('WP_DEBUG', verdadero); hace algo completamente diferente de la línea define ('WP_DEBUG_LOG', verdadero) ;.
En ningún caso debe utilizar define ('WP_DEBUG', true); en un sitio accesible al público. Este comando, cuando se usa solo, simplemente imprime los mensajes de depuración. Esto no registra nada y generará información que podría usarse para robar datos de su (s) sitio (s). Asegurarse de que esto no esté activado, junto con un complemento de seguridad sólido de WordPress, frustrará la gran mayoría de los intentos de ciberataques.
Depurar WordPress sin arriesgar la seguridad
Obviamente, necesitará depurar su sitio con regularidad. Sin embargo, probablemente no desee agregar y eliminar constantemente líneas de código de su archivo wp-config.php.
Pensando en el proceso, primero necesitaremos habilitar la depuración en general. Luego, tendremos que asegurarnos de registrar los errores para que sea posible corregirlos. Sin embargo, no queremos mostrar estos errores al público en general. Recuerde que debemos evitar que se muestren tanto los errores estándar de PHP como los errores específicos de WordPress.
Ejemplo de código de depuración seguro de WordPress
Usando el proceso que describimos anteriormente, aquí hay cuatro líneas de código que pueden ayudarlo a comenzar a depurar su sitio de manera segura.
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
Las primeras tres líneas anteriores simplemente configuran variables PHP globales a las que WordPress presta atención. Estamos haciendo posible la depuración, configurando nuestra funcionalidad de registro y luego desactivando los errores específicos de WordPress.
¡Lo más probable es que parezca que la cuarta línea salió del jardín izquierdo! Esta línea es para abordar los errores de PHP que no son manejados por WordPress. Es la última base a cubrir para garantizar que los usuarios malintencionados no tengan acceso a información confidencial del sitio.
¿Cómo soluciono un error de depuración de WordPress?
Muy a menudo, los desarrolladores usarán esas cuatro líneas de código que revisamos. Experimentarán un error, como una falla en la conexión de la base de datos, pero no habrá nada en el registro de depuración al respecto. Esto se debe a que WordPress tiene diferentes variables PHP globales para diferentes métodos de depuración.
Veamos algunos escenarios en los que deberá agregar algunas líneas más a su archivo wp-config.php para depurar WordPress correctamente.

Depuración de JavaScript de WordPress
Si tiene un sitio de WordPress, es muy probable que utilice JavaScript. Para los desarrolladores más nuevos, este es esencialmente el lenguaje que impulsa los elementos interactivos de los sitios. JavaScript es conocido por ser bastante tedioso de depurar. Esto se debe a que los sitios modernos a menudo usan marcos sobre JavaScript, lo que complica aún más las advertencias y los mensajes de error.
Desafortunadamente, eso no es lo único que dificulta la depuración de JavaScript de WordPress. Hay dos formas básicas de JavaScript: asincrónico o "AJAX" y JavaScript normal . JavaScript normal funciona de forma lineal; no ejecutará una función hasta que se ejecute la anterior a su conclusión. Aunque esto puede haber funcionado en los primeros días de la web, no es suficiente para las aplicaciones web.
AJAX, por otro lado, opera en segundo plano en su sitio de WordPress. Le permite ejecutar funciones de JavaScript y esperar su salida, pero no evita que se ejecuten otras funciones. A menudo es necesario evitar que los sitios se bloqueen.
La razón por la que WordPress nos hace usar otra variable global de PHP para decir que queremos depurar scripts es porque este método de depuración genera una gran cantidad de datos.La razón por la que WordPress nos hace usar otra variable global de PHP para decir que queremos depurar scripts es porque este método de depuración genera una gran cantidad de datos. También se debe a que JavaScript y CSS se ejecutan en el lado del cliente, mientras que PHP se ejecuta en el lado del servidor. Para generar todos los errores en los que se encuentra WordPress debido a JavaScript y CSS, simplemente agregue esta línea:
define( 'SCRIPT_DEBUG', true);
Esto mostrará errores de JavaScript y CSS (hoja de estilo). También puede ayudar con esas operaciones AJAX más complejas.
Solucionar problemas de datos
Casi todos los sitios web obtienen información de una base de datos. WordPress tiene varias bases de datos; algunos sitios almacenan bases de datos en servidores separados y otros las mantienen en el mismo servidor. Dado que todas las configuraciones son diferentes, siempre existe la posibilidad de que algo salga mal en la conexión de su base de datos.
Si recibe un mensaje de error que dice que WordPress no se pudo conectar a una base de datos, o si nota que los datos no se extraen correctamente, probablemente deba depurar. Simplemente usando las variables de depuración estándar de WordPress, probablemente notará que no se registrará nada cuando encuentre un error relacionado con la base de datos.
Esto se debe a que WordPress separa los errores relacionados con la base de datos de todos los demás errores. Los mensajes de error de la base de datos a menudo contienen información confidencial, y los desarrolladores de WordPress querían asegurarse de que no divulgues accidentalmente información privada al público.
Para comenzar a depurar los problemas de la base de datos de WordPress, deberá agregar otra línea a su archivo wp-config.php:
define( 'SAVEQUERIES', true );
Bucear en la depuración de bases de datos
A diferencia de nuestras otras variables de depuración globales de WordPress, debemos prestar especial atención a esta. "SAVEQUERIES" le dice a WordPress que queremos ver cada consulta ejecutada y sus resultados devueltos. ¡Esto dañará sustancialmente el rendimiento de todo el sitio! Tenga cuidado de no ejecutar esto en su servidor en horas pico y apáguelo tan pronto como no lo necesite.
También almacena su salida de forma un poco diferente. WordPress utiliza una matriz PHP de cadenas a las que deberá acceder para ver la información de depuración de la base de datos. Se encuentra en la variable global de PHP llamada $ wpdb y en la matriz de miembros llamada consultas. Puede acceder a él imprimiendo el contenido de $ wpdb-> consultas
Depurar complementos de WordPress
Una de las principales ventajas de WordPress sobre otras plataformas es su rica biblioteca de complementos que pueden hacer casi cualquier cosa. Es posible que esté leyendo esto y ya tenga dolor de cabeza al pensar en la logística de tener que cambiar constantemente el contenido del archivo. Afortunadamente, ¡algunos complementos pueden ayudarnos a depurar WordPress! Hay dos particularmente populares que lo hacen muy sencillo.
Depuración de WP
Ubicado en el sitio de WordPress, este es uno de los complementos de depuración de WordPress más conocidos. Básicamente, automatiza los procesos de los que ya hablamos. Con unos pocos clics desde su panel de control, puede activar y desactivar todas estas variables globales de PHP en su sitio.
Cuando instala este complemento, también instala una serie de complementos de los que depende. En general, le permiten registrar y ayudarlo a interpretar los errores que encuentre.
Esta herramienta es excelente para habilitar el proceso de depuración, pero para depurar sus propios complementos y ver fácilmente la información de depuración de WordPress relacionada con la base de datos, también necesitará otro complemento.
La barra de depuración
Como sugiere su nombre, la barra de depuración es simplemente una barra en el panel de administración de su sitio de WordPress. Se puede utilizar junto con la herramienta de depuración de WP.
Tiene herramientas para desarrolladores más avanzados, lo que les permite ver el caché, las consultas que se han generado, los resultados de las consultas y la información más avanzada. Como mencionamos, WordPress coloca toda la información de depuración de la base de datos en una variable global de PHP.
Para ver realmente esa información, necesitaría iterar a través de esa matriz en un archivo PHP personalizado. Este complemento te ofrece una alternativa sencilla. Imprime toda esta información en un formato que es bastante fácil de leer y comprender. ¡Incluso le da algunos consejos sobre cómo optimizar sus llamadas a la base de datos!
Depurar temas de WordPress
La depuración de temas de WordPress generalmente implica habilitar la variable global PHP con respecto a los scripts. Esto se debe a que los temas utilizan JavaScript y CSS del lado del cliente.
Primero, asegúrese de que sea un tema de su autoría. Si se trata de un tema de terceros que tiene problemas, deberá comunicarse con el autor de ese tema. ¡Sería más o menos tratar de encontrar una aguja en un pajar para hacerlo tú mismo!
Si es su propio tema, asegúrese de seguir los pasos que discutimos para habilitar la depuración. Realice cualquier acción que le haga notar el error. También puede habilitar Developer Console dentro de su navegador web presionando F12. Esto muestra más mensajes de error a nivel de cliente que pueden ayudar en el proceso.
Después de realizar acciones en su tema que conduzcan a errores, consulte el registro. Debe haber información detallada sobre la causa de los errores. ¡Lo más probable es que solo se necesiten algunos ajustes de JavaScript y / o CSS para que todo vuelva a la normalidad!
Depurando el error crítico de WordPress
Si un complemento, tema u otro contenido personalizado genera un error que hace que su sitio de WordPress falle, su sitio debe enviarle un correo electrónico con respecto al error. Especialmente para los webmasters más nuevos, esto puede resultar angustioso.
No hay necesidad de preocuparse, ya que puede seguir esta cadena de pasos para resolver el problema en muy poco tiempo.
- Asegúrese de haber activado el modo de depuración de WordPress.
- Accede a tu registro de errores. Debe tener información detallada sobre el error fatal. Si es así, busque el código de error exacto en línea.
- Verifique su versión de PHP. Si no es lo que WordPress requiere actualmente, simplemente actualizar la versión de PHP que usa su servidor podría solucionar el problema.
- Si aún no tiene suerte, revise sus complementos. Apáguelos todos . Si el sitio funciona, eso significa que un complemento causó el problema. Revíselos uno por uno hasta que encuentre el complemento problemático. Ponte en contacto con quien lo haya escrito y pídele que lo arregle.
- Si aún no ha encontrado el problema, podría ser un problema relacionado con el tema. Intente revertir su tema actual al predeterminado de WordPress. Si su sitio funciona, deberá cambiar temporalmente los temas hasta que el autor resuelva el problema.
- ¿No dados? Publique su error en el foro de desarrolladores de WordPress. Hay muchos usuarios que estarán encantados de ayudarte.
Terminando
La depuración de WordPress puede ayudarlo a resolver una serie de problemas que encuentre. Puede decirle qué complementos tienen problemas o qué problema podría tener con un tema. Como desarrollador de WordPress, la depuración le ayuda no solo a ser un mejor desarrollador, sino que también le ayuda a producir código limpio y de calidad.
AJ aporta más de dos décadas de experiencia trabajando y desarrollando sitios de membresía con una amplia gama de clientes.
