La seguridad y la coherencia son algunas de las principales preocupaciones que tenemos al usar bibliotecas, marcos y complementos de terceros. Nos enfrentamos al mismo problema al utilizar temas y complementos de WordPress gratuitos y comerciales..
El Códice de WordPress proporciona un conjunto de pautas y reglas para desarrollar temas. Para poder enviar temas al directorio de temas de WordPress, debe cumplir con estas pautas. Pero hay cientos de temas comerciales y gratuitos que podrían no desarrollarse de acuerdo con estas pautas..
Básicamente, tenemos que verificar si un tema coincide al menos con el conjunto dado de pautas y reglas. Theme Check es un complemento gratuito de WordPress desarrollado para validar temas de WordPress.
Definitivamente no puede, al menos, con su funcionalidad predeterminada. Así que aquí vamos a ver cómo podemos usar las comprobaciones existentes, así como agregar nuestras propias reglas para la validación de los temas de WordPress..
Theme Check presenta alrededor de 40 pruebas incorporadas para validar su tema tanto en el panel frontal como en el panel de administración. Básicamente, esas comprobaciones contendrán las validaciones necesarias para evitar problemas de seguridad y comparar las funcionalidades del tema con las pautas de desarrollo del tema.
Como desarrolladores de temas o usuarios de temas de terceros, deberíamos utilizar una herramienta de este tipo para asegurarnos de que nuestros temas cumplen con los estándares.
La mayor importancia del verificador de temas viene con su capacidad para cambiar el comportamiento existente o agregar un nuevo comportamiento a través de complementos conectables. A lo largo de este artículo analizaremos su arquitectura y las posibilidades de extender el complemento para utilizarlo como una biblioteca de comprobación de temas con todas las funciones..
Supongo que la mayoría de ustedes ya han utilizado este complemento en sus tareas de desarrollo de WordPress. Aquellos que son nuevos en este complemento pueden obtener una copia del repositorio de complemento de WordPress en http://wordpress.org/extend/plugins/theme-check/.
Una vez instalado y activado, obtendrás un submenú llamado Verificación de tema bajo la Apariencia menú. Allí puede encontrar un cuadro desplegable que contiene todos los temas disponibles en su instalación de WordPress. Puede seleccionar un tema y hacer clic en Revisalo Botón para iniciar la validación del tema. Una vez que se complete el proceso, aparecerá una pantalla como la siguiente.
WP_DEBUG
opción en el wp-config.php archivo a CIERTO
antes de comenzar a validar temas. La pantalla de resultados de la verificación de tema contendrá todos los tipos de errores encontrados en su tema en diferentes tipos de error, como RECOMENDADO, NECESARIO, ADVERTENCIA, etc. Tenga en cuenta que todas estas validaciones se realizan según los estándares de revisión de temas de WordPress.
El poder real de Theme Check llega cuando extendemos el complemento con verificaciones de validación personalizadas. Así que vamos a profundizar en el código para descubrir cómo funciona y cómo podemos extenderlo con nuestros propios cheques..
Theme Check ofrece una interfaz bien definida y simple para crear cheques. Todas las comprobaciones existentes así como las nuevas deben implementarse en esta interfaz para que las cosas funcionen. El siguiente código contenido en el checkbase.php archivo muestra la interfaz común para la verificación de temas.
// interfaz que todas las comprobaciones deben implementar interfaz themecheck // debe devolver true para buena / aceptable / aceptable, falsa para mala / no-aceptable / inaceptable comprobación de función pública ($ php_files, $ css_files, $ other_files); // debe devolver una serie de cadenas que expliquen los problemas encontrados. public function getError ();
Básicamente contiene dos funciones para verificar el tema y proporcionar errores. Todo el contenido del archivo de su tema se comprimirá en tres variables principales como cadenas. Estas variables se pasan luego a la función de verificación de cada clase de verificación mediante el complemento.
Dentro de comprobar
función tenemos que implementar las validaciones y devolver errores si la comprobación se completa como un error. Entonces el getError
Se llamará a la función para agregar los mensajes de error a la página de resultados de la verificación del tema..
Creo que es importante comprender el proceso de inicialización de la verificación de temas para saber cómo funciona y las secciones importantes en las que debemos enfocarnos, antes de extender la funcionalidad del complemento..
Una vez que seleccionamos el tema y hacemos clic en el botón 'Comprobar', el complemento buscará todos los archivos en el tema seleccionado usando el PHP RecursiveDirectoryIterator
y asigna todo el contenido de esos archivos a una variable de cadena.
Luego, el contenido del archivo se dividirá en tres variables, una para cada uno de los archivos PHP, CSS y otros archivos. Luego comienza el proceso de ejecución de las comprobaciones de temas, que será la parte más importante para nosotros como desarrolladores..
Considere el siguiente código para el proceso de ejecución inicial después de cargar las variables de archivo.
// cargar todos los cheques en el directorio de cheques $ dir = 'cheques'; foreach (glob (dirname (__ FILE__). "/$dir/*.php") como $ archivo) incluye $ archivo; do_action ('themecheck_checks_loaded'); function run_themechecks ($ php, $ css, $ other) global $ themechecks; $ pass = true; foreach ($ themechecks as $ check) if ($ check instanceof themecheck) $ pass = $ pass & $ check-> check ($ php, $ css, $ other); devolver $ pass;
themecheck_checks_loaded
. Esta acción actúa como la parte más importante en el proceso de extensión..run_themechecks
Función, que toma archivos PHP, archivos CSS y otros archivos como variables.$ chequeos
Variable que se ejecutará para completar el proceso de verificación..La mayoría de las comprobaciones de temas se basan en expresiones regulares coincidentes o en posiciones específicas coincidentes en cadenas. Nuestro primer requisito es averiguar cómo podemos modificar el comportamiento de los controles existentes. Así que echemos un vistazo a la IncludeCheck
clase, que valida cómo deben incluirse los archivos en un tema.
La clase IncludeCheck implementa themecheck protected $ error = array (); verificación de funciones ($ php_files, $ css_files, $ other_files) $ ret = true; $ cheques = array ('/ (? __ ('Parece que el tema usa incluir o requerir. Si se están usando para incluir secciones separadas de una plantilla de archivos independientes, entonces get_template_part () debe utilizarse en su lugar. ',' themecheck ')); foreach ($ php_files as $ php_key => $ phpfile) foreach ($ cheques como $ key => $ check) checkcount (); if (preg_match ($ key, $ phpfile, $ matches)) $ filename = tc_filename ($ php_key); $ error = '/ (?error [] = sprintf (__ ('INFO: % 1 $ s % 2 $ s% 3 $ s ',' themecheck '), $ filename, $ check, $ grep); devolver $ ret; función getError () return $ this-> error; $ themechecks [] = new IncludeCheck;
cuenta de cheques
variable.$ chequeos
matriz al final del archivo.Suponga que desea mejorar una verificación de tema existente agregando nuevas reglas o modificando las existentes. Todo lo que tiene que hacer es agregar un nuevo elemento o cambiar las expresiones regulares de los elementos existentes en la matriz de cheques.
Ahora debe tener una comprensión clara de cómo funcionan las comprobaciones de temas y cómo se generan los errores en los fallos. Pasemos a la parte más importante de crear nuestras propias comprobaciones personalizadas sin afectar el complemento del núcleo.
Crear nuevas comprobaciones de temas puede ser tan simple como implementar la interfaz con una nueva clase de verificación de temas y colocar los archivos dentro del directorio de comprobaciones del complemento. Pero cambiar la funcionalidad principal no es un método recomendado, ya que siempre perderá sus archivos en las actualizaciones de los complementos..
La mejor práctica es extender los complementos usando opciones posibles sin afectar el código del núcleo. Los desarrolladores de Theme Check han habilitado la opción de extender la funcionalidad usando un gancho de acción llamado themecheck_checks_loaded
.
Este gancho de acción se ejecutará después de que se hayan cargado todas las comprobaciones de temas. Por lo tanto, tendremos acceso a la variable de verificación de tema global dentro de los complementos conectables. Ahora es el momento de comenzar creando un complemento personalizado..
A veces es posible que tengamos que deshabilitar algunas comprobaciones de temas para cumplir con los requisitos de nuestros propios temas. Debe eliminar el archivo o comentar el código de inicialización para deshabilitarlos en un escenario normal. Pero con el poder de un complemento enchufable, podemos habilitarlos o deshabilitarlos en cualquier momento sin afectar el núcleo. Veamos cómo podemos deshabilitar la verificación de temas usando un plugin..
function custom_themecheck_checks_loaded () global $ themechecks; $ checks_to_disable = array ("Desaprobado", "Screenshot_Checks"); foreach ($ themechecks como $ keyindex => $ check) if ($ check instanceof themecheck) $ check_class = get_class ($ check); if (in_array ($ check_class, $ checks_to_disable)) unset ($ themechecks [$ keyindex]); add_action ('themecheck_checks_loaded', 'custom_themecheck_checks_loaded');
Podemos implementar el themecheck_checks_loaded
Acción del plugin Theme Check, dentro de nuestros propios plugins. Allí tenemos acceso a todas las comprobaciones de temas cargados. Podemos definir una matriz para que contenga los nombres de clase de las comprobaciones de temas que deseamos deshabilitar. Finalmente, desarmamos las comprobaciones contenidas en la matriz deshabilitada y la comprobación del tema se ejecutará sin estas validaciones.
Se nos permite modificar fácilmente las comprobaciones de temas existentes utilizando nuestro propio complemento. Implementar una verificación de temas desde cero es la intención principal de este tutorial. Así que vamos a ver cómo podemos crear una nueva comprobación de tema.
Puede haber cientos de escenarios para implementar verificaciones de temas personalizados. Validar los ganchos de acción personalizados es uno de mis favoritos y usaré el código para explicaciones..
Básicamente, me gustaría tener ciertos enlaces de acción personalizados en mis temas para agregar nuevas funcionalidades. El tema temático es un buen ejemplo para el uso efectivo de ganchos de acción personalizados en temas. Comencemos a implementar una verificación de tema personalizada..
Dentro de la carpeta de complementos personalizados, cree una nueva clase de PHP e implemente la interfaz con los detalles descritos en las secciones anteriores. La forma más sencilla es copiar una verificación de tema existente y cambiar la función de verificación y la inicialización. Considere el siguiente código para la implementación de verificación de enlaces de acción personalizados.
__( 'Ver: ',' themecheck '),' do_action \ (\ s? ("| \ ') sample_action2 (" | \') \ s? \) '=> __ (' See: ',' themecheck ')); foreach ($ cheques como $ clave => $ cheque) cheque cuenta (); if (! preg_match ('/'. $ key. '/ i', $ php)) if ($ key === 'do_action \ (\ s? ("| \') sample_action1 (" | \ ') \ s? \) ') $ key = __ (' do_action (\ 'sample_action1 \') ',' themechek '); if ($ key === 'do_action \ (\ s? ("| \') sample_action2 (" | \ ') \ s? \)') $ key = __ ('do_action (\' sample_action2 \ ') ',' themechek '); $ key = ltrim (trim (trim ($ key, '('), '\\')); $ this-> error [] = sprintf (__ ('NECESARIO: No pudo encontrar % 1 $ s. % 2 $ s ',' themecheck '), $ key, $ check); $ ret = falso; devolver $ ret; función getError () return $ this-> error; $ themechecks [] = new CustomActions; ?>
En esta comprobación personalizada, he incluido expresiones regulares para validar dos enlaces de acción personalizados llamados sample_action1
y sample_action2
. Después de encontrar una coincidencia, definimos una clave fácil de usar para que se muestre al usuario en lugar de las expresiones regulares originales. Si lo compara con los controles existentes, notará que las expresiones regulares y los mensajes de la función de control son las únicas cosas que se han modificado..
Finalmente, podemos agregar nuevos controles usando otra implementación de la acción como se muestra en el siguiente código.
función custom_new_themecheck_loadeder () global $ themechecks; include_once 'custom_actions.php'; add_action ('themecheck_checks_loaded', 'custom_new_themecheck_loadeder');
Ahora puede integrar sus propios controles de tema en el complemento Theme Check.
Theme Check está desarrollado para validar temas en comparación con las pautas de desarrollo de temas de WordPress. Por lo tanto, se centrará principalmente en cuestiones de seguridad y en mantener un formato y características consistentes..
Podemos usar este complemento desde una perspectiva diferente para agregar características como se muestra en la sección anterior. Si eres un experto en expresiones regulares, es posible crear una comprobación de temas avanzada con esta increíble herramienta..
Depende de usted decidir cuándo usar los controles de temas personalizados. Por supuesto, esto es más importante para los desarrolladores de temas que para los usuarios de temas de WordPress..
Puedo pensar en dos escenarios principales donde las comprobaciones de temas personalizados pueden ser útiles.
No creo que ningún desarrollador desarrolle cada tema de WordPress desde cero. La mayoría de los desarrolladores mantienen su propio marco de tema básico y construyen varios diseños además de eso.
Por lo tanto, las verificaciones de temas personalizados serán muy útiles para mantener la coherencia de un marco básico en todos los temas. Puede validar cosas como formatos de imagen, tamaños, códigos cortos, acciones, etc. dentro de su propio marco.
En general, la mayoría de los temas de WordPress están diseñados para adaptarse a un tipo de tema de blogging. WordPress ofrece ganchos de acción incorporados para las funciones del blog y, por lo tanto, no tendremos dificultades para extenderlos.
Sin embargo, puede haber escenarios donde se desarrollen temas para aplicaciones como sitios de publicación de trabajos, carritos de compras, sistemas de gestión de eventos, etc. Estos temas tienen secciones y características completamente diferentes en comparación con los blogs. WordPress no ofrece funciones integradas para tales temas. Por lo tanto, sería una buena idea implementar ganchos de acción dentro de dichos temas y validarlos utilizando la Verificación de tema..
Espero que hayas aprendido la importancia de Theme Check y cómo podemos usarlo para mantener la coherencia en todos nuestros temas..
Me gustaría saber si ha utilizado este complemento y qué tipo de verificaciones de temas personalizados ha implementado para ampliar sus funciones..
Siéntase libre de compartir sus sugerencias y preguntas en la sección de comentarios a continuación.