
Cuando hablamos de patrones en WordPress, normalmente nos referimos a los archivos de plantilla de página. Sin embargo, hay complementos que usan archivos de plantilla para mostrar contenido, y esto se convierte en otra consideración cuando se trata de crear temas de WordPress. ¿Puede anular los archivos de plantilla de complemento? ¿Si es así, cómo? Si crea un complemento que reproduce HTML, ¿cómo puede cambiarlo fácilmente de acuerdo con los temas? En este artículo responderé estas preguntas. ¿Cuáles son las plantillas? La plantilla de plantilla de WordPress es uno de los pilares más importantes de la arquitectura de WordPress. Los archivos de plantilla son “archivos PHP que contienen una mezcla de HTML, etiquetas de plantilla y código PHP”.
Los archivos de plantilla se cargan de manera específica, gobernada por la jerarquía de plantillas de WordPress. Se buscan archivos de plantilla específicos en el tema y se utilizan alternativas si no existen. Por ejemplo, un sitio de listados de automóviles registró un tipo personalizado de “automóvil”. Cuando un usuario visita una página en el sitio para un automóvil en particular, WordPress buscará un archivo de plantilla llamado Single-Car.php. Si no existe, la plantilla Single.php se usará para mostrar publicaciones genéricas. No es necesario que un tema tenga estas plantillas, pero cuantas más plantillas, más control granular sobre cómo se muestra el contenido diferente:
El archivo de plantilla más importante es index.php, que es la plantilla de captura todo si no se puede encontrar una plantilla más específica en la jerarquía de la plantilla. Aunque un tema solo necesita una plantilla index.php, los temas generalmente incluyen numerosas plantillas para mostrar diferentes tipos de contenido y contextos. Las plantillas de complemento en los mismos WordPress y los temas usan archivos de plantilla, si un complemento tiene que eliminar HTML en la parte delantera, entonces es una buena idea usar un archivo de plantilla. Es una buena práctica separar el marcado de su código para que no pueda escribir funciones que realicen mucha impresión () e printf () solo para reproducir HTML o tener grandes bloques HTML. Le ayuda a organizar sus archivos de complemento Y, aunque está bastante lejos de la arquitectura MVC (necesita un marco de WordPress para esto), significa que sus plantillas de “visualización” pueden extenderse y sobrescribirse. Si deja los archivos de complemento no organizados, descubrirá que puede orinar el código con muchas llamadas do_action y aplicar_filters, para hacer la salida. No todos los complementos tendrán que hacer esto, pero los que toman HTML en el sitio, como el comercio electrónico o complementos de membresía, deberían permitir que la base los reemplace. Hay muchos complementos que usan plantillas y permiten a los desarrolladores reemplazarlas. WooCommerce, descargas digitales fáciles y WP User Manager (un complemento que compré recientemente) tienen esta característica, pero cada una la implementa de una manera diferente. Echemos un vistazo a cómo lo hacen.
Sobrescribir las plantillas de complemento Si un complemento permite personalizar la plantilla, entonces hay una convención general de que los archivos de plantilla deben copiarse del enchufe en un directorio de temas con el nombre del complemento Slug, manteniendo cualquier ruta del complemento. Por ejemplo, WP-Contentent/WooCommerce/Templates/Checkout/Form-Checkout.php habría copiado en WP-Content/Theme/YourThemename/WooCommerce/Checkout/Form-Checkout.php, luego se pueden ser HTML y PHP del archivo copiado ajustado según sea necesario. Sin embargo, Easy Digital Descargas está buscando plantillas personalizadas en un director llamado edd_templates en el director raíz del tema. Aunque este nombre se puede modificar usando el filtro edd_templates_dir: add_filter (‘edd_templates_dir’, function () {return ‘fácil-dockers’); Si desea personalizar las plantillas de otro complemento, siempre es una buena idea verificar su documentación para ver dónde se deben copiar los archivos de plantilla. La implementación de una jerarquía de plantillas en su propio complemento para ver cómo cada complemento implementa la carga de la plantilla, lo que le ayudará a decidir qué enfoque usar en su enchufe. Lo que a su vez llama a la función nativa WordPress localizar. Aquí está la magia. La función está buscando el archivo de plantilla en tres ubicaciones: el tema infantil (si corresponde), el tema principal y el director WP-Includes/Theme-Compat de la raíz de WordPress. La función luego carga la plantilla si se encuentra.
Si localizar_template aparece vacío, entonces wooCommerce carga su versión de la plantilla. La función permite cambiar la plantilla utilizando el filtro WC_GET_Template_Part, para que otros complementos puedan cambiar las plantillas básicas de WooCommerce. Rode sus descargas digitales fáciles para adoptar un enfoque similar, pero no use la función de WordPress localizar_template para localizar la plantilla en los archivos de temas. Su propio edd_get_template_part requiere una pila de funciones que se hacen cargo de varios directorios para buscar. Esto incluye las mismas ubicaciones: el tema del niño, el tema principal y el propio director de plantilla de complemento EDD. Nuevamente, estas formas se pueden filtrar utilizando el filtro edd_template_paths. La función no buscará en el director WP-Includes/Theme-Compat. Sobre la plantilla se carga utilizando la función nativa de WordPress Load_template, que es lo que utiliza.
Biblioteca de terceros En lugar de escribir su propia función para cargar la plantilla, WP User Manager utiliza el cargador de la biblioteca Loado para hacer el trabajo por ello. La función get_template_part () de WordPress nunca se ha concebido realmente con la ayuda de complementos, porque se basa en el lugar () que verifica solo los temas de los niños y los padres. Por lo tanto, podemos agregar una solución final que use las plantillas de complemento, debemos usar una función personalizada _template () y una función personalizada get_template_part (). La solución aquí los empaca solo como clase para conveniencia.
El complemento luego implementa la biblioteca creando una clase que extiende la clase ClassJO_Template_Loader, configurando algunas variables específicas para el complemento. <? Clase PHP WPUM_Template_Loader Extands gamaji_templat_loader { /*** Prefijo para nombres de filtro. * * @Var String */ Protected $ filtre_prefix = 'wpum'; /*** Nombre del directorio donde las plantillas deben encontrarse en el tema. * * @Var String */ Protected $ thema_template_directory = 'wpum'; /*** Directorio raíz del complemento actual. * * @Var String */ Protected $ plugin_directory = wpum_plugin_dir; /*** Nombre del directorio de dónde se han almacenado las plantillas en el complemento. * * @Var String */ Protected $ plugin_template_directory = 'plantlates'; } Esta clase se instancia y se usa cada vez que se carga una plantilla en el código de complemento. Por ejemplo: $ user); $ Templates-> set_template_data ($ date)-> get_template_part (“perfiles/{$ activo_tab}”); En el ejemplo anterior, puede ver el uso del método set_template_data para permitir que el código de llamada transmita datos a la plantilla. Esta es una característica sólida que faltan ambas técnicas de implementación anteriores. Permite la transmisión de datos a la plantilla estableciendo un nuevo elemento en $ wp_query-> query_vars, que luego están disponibles para llamarse en la plantilla infantil:
user-> id, ‘user_cover’, true); ? ? plantilla. Como desarrolladores de arado, el uso de bibliotecas o paquetes significa que no tenemos que escribir el mismo código una y otra vez, en varios complementos y podemos beneficiarnos de la experiencia de otros que han escrito la biblioteca, contribuido a él y probados. En batalla. . Existe una desventaja en el uso de bibliotecas PHP en un complemento de WordPress. Podría alcanzar el infierno de adicción, donde su complemento podría usar una versión diferente de la biblioteca que fue cargada por otro complemento. WP User Manager utiliza el compositor para incluir la biblioteca para facilitar la actualización del paquete. Sin embargo, todavía no protege de los problemas de adicción, por lo que usaré la guía de Pete para evitar problemas con el espacio de nombres con paquetes compositor en una versión futura del complemento. Ir a la misericordia adicional ¿Qué sucede si un complemento cambia los archivos de plantilla, y su tema ahora tiene una versión obsoleta que ha personalizado?

Por supuesto, el cambio podría ser algunos cambios inofensivos en los nombres de HTML o de clase, pero a menudo hay un cambio en la funcionalidad que no desea perder.Falta de cambios críticos en las plantillas y, por lo general, solo notaría esto si notara un problema al probar el sitio después de actualizar el complemento.(No todos los complementos reciben las mismas pruebas rigurosas después de una actualización de los propietarios del sitio). WooCommerce ha identificado esto como un problema crítico para los usuarios y ha creado un sistema de protección.Como parte del estado de configuración de la página>, muestran qué plantillas se personalizaron según el tema, así como indica si la versión está desactualizada y requiere una actualización.

Las mejores prácticas para desarrollar complementos de WordPress: archivos de plantilla
Tags Las mejores prácticas para desarrollar complementos de WordPress: archivos de plantilla
homefinance blog