Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Crear temas mantenibles para WordPress: Herramientas

by
Length:LongLanguages:
This post is part of a series called Writing Maintainable WordPress Themes.
Writing Maintainable WordPress Themes: Naming Conventions

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

A través de esta serie, hemos hablado sobre distintas prácticas que podemos usar durante el desarrollo de nuestros temas para WordPress que nos ayudarán no solo a proporcionar una base consistente a partir de la cual no solo podremos construir nuestros proyectos actuales y futuros, sino también mantenerlos una vez publicados.

Hasta ahora hemos visto lo siguiente:

  1. Directorios
  2. Convenciones de nomenclatura

Antes de zambullirnos de pleno en este artículo te recomiendo leer las dos primeras partes de manera que puedas comprender la perspectiva que estamos adoptando al abordar el desarrollo de temas. Además de lo puntos que citamos en ellas, también existen algunas herramientas que creo que deberías instalar para ayudarte a comprobar que estás escribiendo el mejor código posible.

Por supuesto, no se trata solo de añadir extras a los consejos que mencionamos antes, también debes aplicar los estándares de código de WordPress.

En este artículo, hablaré sobre distintos ajustes y plugins que creo que deberías definir e instalar en cualquier entorno de desarrollo de WordPress para asegurarte de que estás usando las APIs más actualizadas, que no estás afectando negativamente el rendimiento ni provocando algún aviso, advertencia o error PHP.

Ajustes

Antes de pasar a hablar sobre los distintos plugins disponibles, te recomiendo que configures varios ajustes en tu servidor web y en tu entorno WordPress.

Algunos de estos ajustes afectarán a la funcionalidad ofrecida por los plugins que vamos a ver más adelante en este mismo artículo, otros proporcionan funcionalidad que nos ayudará mediante avisos cuando cometamos errores en nuestro código PHP y/o código específico de WordPress.

Ajustes del Servidor Web

Aunque no todo el mundo trabaja con Apache, PHP, y MySQL, todavía es la configuración más empleada cuando trabajamos con WordPress. Una de las cosas que siempre recomiendo hacer a los desarrolladores en sus entornos es que se aseguren de haber configurado PHP de manera que registre todo en un archivo ubicado en sus ordenadores.

Es decir, si tienes las siguientes opciones de registro:

  • errores de inicio
  • errores
  • advertencias
  • avisos
  • todos los demás errores y advertencias

Asegúrate de marcar todas las opciones. Si usas una herramienta como MAMP, XAMP, o WAMP, activarlas a través de la interfaz de usuario es bastante fácil; sin embargo, si no estás seguro de dónde configurarlas, siempre puedes hacerlo dentro del archivo php.ini usando las pautas indicadas en el manual PHP.

Llevar un seguimiento de los errores registrados que pueden no mostrarse en la pantalla (aunque más adelante explicaremos cómo hacer para verlos) es esencial para asegurarte de que estás escribiendo código que detecta cualquier problema potencial del código.

Desde luego, esto también debería ser posible aunque usemos otros servidores web - después de todo, es simplemente la configuración de un ajuste PHP - pero yo actualmente no uso muchas de las otras opciones disponibles y quería dejar claro el entorno de desarrollo al que estoy haciendo referencia.

WP_DEBUG

WP_DEBUG es una constante que puedes establecer dentro de tu archivo WordPress wp-config.php. La mayoría de las instalaciones tendrán configurado esto por defecto a "false". Si ya lo tienes configurado a true, significa que alguien lo ha cambiado por tí o que tienes una copia de WordPress que no tiene los ajustes que vienen por defecto con la plataforma WordPress.org.

De cualquier forma, busca la constante en el archivo de configuración y si está establecida a false, cámbiala a true. Si no la encuentras, añade la siguiente línea. Por último, esto es lo que debería contener tu archivo functions.php (además del resto de código que ya contenía):

Es decir, esta constante en concreto se asegurará de que los avisos PHP se muestren en la pantalla así como los mensajes de depuración relacionados con WordPress. Esto es muy útil siempre que estás trabajando en un tema e intentas comprobar, por ejemplo, un índice vació en una cadena o usas una función que ya no es soportada por la actual versión de WordPress.

También existe un fantástico plugin relacionado con esta técnica que veremos más adelante en este artículo.

Además, existen otras dos constantes que puedes definir para obtener más información de la que te proporciona la anterior. Puedes leer el siguiente artículo del Codex para descubrir más pero, en pocas palabras, las constantes y sus definiciones son las siguientes:

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 código HTML de las páginas o no. El ajuste por defecto es 'true', de manera que los errores y advertencias serán mostrados conforme se produzcan. Ajustar esto a false ocultará todos los errores. Deberías usar esto junto con WP_DEBUG_LOG de manera que puedas revisar más adelante todos los errores.

De forma predeterminada, WordPress te mostrará todos los errores, advertencias y avisos en la página correspondiente. Si quieres continuar depurando WordPress evitando que la información se muestre en ella, y que se escriba únicamente en un archivo de registro, puedes establecer esta constante como false.

Personalmente, no soy fan de mantener las cosas ocultas ya que me gusta ser consciente de los problemas tan pronto surgen (es decir: tan pronto los he generado), pero cada uno tenemos nuestros distintos métodos de trabajo. Por eso, si ver los mensajes en las páginas entra en conflicto con tu estilo de desarrollo, define esta constante en consonancia junto con WP_DEBUG_LOG.

WP_DEBUG_LOG

WP_DEBUG_LOG es un compañero de WP_DEBUG que hace que todos los errores se guarden también en un archivo debug.log ubicado dentro del directorio /wp-content/. Esto es útil si quieres revisar todos los avisos más tarde o necesitas ver los avisos generados fuera de la pantalla (por ej. durante una petición AJAX o una ejecución cron).

Esta es una constante muy útil si eres bueno monitorizando tus registros de error (algo en lo que debería ser bueno cualquier desarrollador). Además del registro generado por PHP, todavía existe otro archivo que nos proporciona información sobre a qué se puede deber un problema dado y dónde se origina mientras trabajas en el desarrollo de un tema.

SAVEQUERIES

Esta constante es otra de esas que te serán útiles con algunos de los plugins que vamos a ver más adelante en este mismo artículo; sin embargo, vale la pena configurarla en functions.php aunque no tengas plugins adicionales instalados.

Al igual que la constante WP_DEBUG de arriba, puedes añadirla en functions.php. Debería tener el siguiente aspecto:

Tiene buen aspecto, cierto, ¿pero qué hace realmente? SAVEQUERIES le indica a WordPress que haga un seguimiento de dos cosas:

  1. Todas las consultas que son ejecutadas
  2. Cuánto tiempo se ha invertido en cada consulta

Esto conecta directamente con $wpdb que es la clase de la base de datos de WordPress. Como he mencionado antes, existe otro plugin que funciona directamente con esta constante de manera que puedas ver todas las consultas desde dentro de WordPress; sin embargo, si prefieres renunciar a usar un plugin para procesar la información, simplemente define esta constante y luego imprime el resultado de $wpdb->queries en el formato que prefieras.

Plugins

Además de establecer constantes, existen varios potentes plugins, que creo que deberías instalar en cada una de tus instalaciones WordPress de desarrollo, y que te proporcionarán incluso más ayuda si las usas con los anteriores ajustes.

Posiblemente muchos de vosotros tenéis plugins que añadiríais a esta lista y otros tendréis opiniones propias sobre cada uno de estos plugins, son simplemente los que yo he encontrado más útiles durante mis esfuerzos de desarrollo.

Debug Bar

Debug Bar introduce una opción en la barra de administración de WordPress que proporciona información sobre las consultas, la caché, y otra útil información.

Se saca más partido a este plugin si tienes WP_DEBUG y SAVEQUERIES habilitado. Observa que también es necesario tener instalado este plugin para usar otros de los plugins que vamos a citar a continuación. Es decir, tiene un número de extensiones que los hacen incluso más potentes.

Debug Bar Actions and Filters Addon

Este plugin introduce dos nuevas pestañas dentro de Debug Bar que te permiten ver todas las acciones y filtros (es decir, todos los hooks) que son ejecutados al solicitar la página actual.

Esto es excepcionalmente útil si estás construyendo un tema complejo o si has heredado un código base de alguien y estás intentando descubrir el por qué ocurren ciertas cosas cuyo motivo no es fácil de dilucidar debido a la manera en la que este está construido.

Debug Bar Console

Desgraciadamente, este plugin no ha sido actualizado desde hace unos años así que no sé durante cuánto tiempo continuará funcionando con WordPress (a menos que alguien lo adopte y continúe su desarrollo), pero funciona junto con Debug Bar para darte la posibilidad de ejecutar PHP y MySQL directamente desde el backend de WordPress.

Esto es muy útil para descubrir por qué, por ejemplo, una función de tu tema no está funcionando como debería. Es decir, serás capaz de escribir una función directamente en la consola, ejecutarla, y comprobar el resultado sin tener que pasar constantemente a tu IDE, cambiar la función, refrescar, y comprobar el resultado.

Debug Bar List Script y Style Dependencies

Si estás trabajando con un tema que usa muchos estilos y archivos JavaScript, especialmente aquellos que dependen de otras hojas de estilos y otros archivos JavaScript, es útil saber el orden en el que son cargados y cómo deberían hacerlo.

Aquí es donde es útil este addon para Debug Bar.

Nos permite visualizar el orden en el que se cargan y ejecutan los scripts y los estilos de manera que podamos realizar los cambios necesarios para que todas las dependencias se carguen como deben de manera que nuestro tema funcione correctamente.

Debug Bar Post Types

Si tu tema introduce tipos de entradas personalizadas en el escritorio, es muy posible que tengas que trabajar con distintas propiedades, reglas de reescritura, y otras cosas.

Puede complicarse rápidamente dependiendo de en qué medida decidas modificar las características del tipo de entrada personalizada.

Este plugin añade otro panel a Debug Bar de manera que puedas ver rápidamente las propiedades de cada tipo de entrada. No permite la modificación ni la edición en tiempo real (ya que eso puede hacerse en la consola de Debug Bar o simplemente editando la definición de tu tipo de entrada personalizada), pero nos proporciona un formato mucho más limpio que una gran cadena en la pantalla de un IDE.

Log Deprecated Notices

Se trata de un sencillo plugin que registrará en un archivo si se hace uso de archivos, funciones, argumentos, etcétera, que sean obsoletos. Concretamente, cuando estás escribiendo un tema, este plugin te notificará si ejecutas algo que no es compatible al 100% con la actual versión de WordPress.

Para aquellos que quieran asegurarse la compatibilidad futura de su trabajo y que estén al día con las últimas APIs, les recomiendo este plugin.

WordPress Plugin Performance Profiler

Uno de los conceptos erróneos más grande sobre WordPress es que tener activos un montón de plugins hace que tu sitio cargue lentamente o que engorden el peso de las páginas del sitio web. Eso no es cierto. Los culpables de esto son los plugins con código de mala calidad. Aquellos que siguen las mejores prácticas de WordPress y los estándares de código deberían tener un impacto mínimo en los tiempos de carga.

Dicho esto, este plugin identificará exactamente qué plugins están teniendo un mayor impacto negativo en el rendimiento. Esto puede ser útil cuando estás intentando desvelar la razón por la que el rendimiento de tu sitio es lento, pero también es útil ejecutarlo contra tu propio código para asegurarte de que tú mismo no estás afectando el rendimiento del sitio.

Rewrite Rules Inspector

Cualquiera que haya trabajado extensamente con tipos de entradas personalizadas, rutas personalizadas o URLs, o que se haya aventurado en la Rewrite API, conocerá los retos que supone.

Este plugin ayuda ofreciendo una representación visual de las reglas de reescritura para tu instalación. Es útil para inspeccionar las reglas que existen dentro del tema actual, pero también ayuda a depurar cuando estés intentando definir un esquema personalizado y tienes dificultades con las expresiones regulares para conseguirlo.

RTL Tester

Si deseas promocionar tu plugin entre el público más amplio posible, entonces querrás comprobar qué aspecto tiene en los idiomas que se leen de izquierda-a-derecha y también de derecha-a-izquierda.

Es decir, si quieres asegurarte de que estás internacionalizando adecuadamente tu tema, entonces este plugin te permitirá comprobar su aspecto en idiomas internacionalizados.

Si, por ejemplo, estás pensando vender tu tema en WordPress.com, deberías usar esta herramienta.

Theme Check

Si estás quieres asegurarte de que tu tema está al día respecto a las normas de Revisión de Temas de WordPress, entonces Theme Check es indispensable.

Realizará una auditoría automatizada de tu tema y se asegurará de que todo tu código está a la par con las directrices actuales. Si no es así, mostrará una descripción clara de los problemas acompañada de enlaces hacia las normas que no estés siguiendo. También proporciona sugerencias sobre aspectos que deberías implementar.

Observa que la mayoría (sino todas) estas herramientas están disponibles de forma gratuita en el Repositorio de Plugins de WordPress, por tanto las puedes instalar directamente desde el escritorio de WordPress.

Conclusión

Como he comentado en artículos anteriores, muchas de las cosas que he compartido en esta serie son un poco subjetivas o es posible que no funcionen en tu entorno de desarrollo. Aunque las prácticas y herramientas que he recomendado han sido probadas y comprobadas a lo largo de mi experiencia personal trabajando con WordPress desde hace varios años, también reconozco que no todos usamos el mismo conjunto de herramientas.

Esto significa que algunas de las configuraciones, organizaciones, y ajustes podrían ser distintos en tu caso. Eso está bien. En definitiva, el objetivo es que, como desarrolladores, debemos hacer el mejor trabajo posible para escribir temas mantenibles ya que invertimos mucho tiempo trabajando en ellos tras su lanzamiento inicial.

Quizá algunas de las cosas que he sugerido a lo largo de la serie te ayude a conseguirlo. Quizá tengas que modificarlo un poco para adaptarlo a las herramientas que usas. Sea como sea, espero que esta serie te haya resultado útil y te haya aportado algún consejo práctico para tus futuros desarrollos de temas, también espero haber despertado tu interés en la creación de una pautas en cuanto a la forma de estructurar y organizar tus próximos proyectos.

Como de costumbre, por favor, siéntete libre de continuar el debate consultando o aportando cualquier opinión en la sección para los comentarios que viene a continuación.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.