Por qué, cuándo y cómo crear sus propias etiquetas de plantilla

Una de las mejores cosas de WordPress es que hay muchas cosas que funcionan como era de esperar.Es posible que no tenga la idea más clara de lo que WordPress hace bajo el capó que extrae datos de una base de datos, que está escrito en PHP, que los complementos funcionan a través de ganchos, etc.- Pero cuando abres una plantilla de WordPress, probablemente puedas adivinar con bastante precisión lo que date (), the_title () y the_content () hacen.Estas etiquetas de plantillas se incorporan a WordPress y son geniales.Pero lo que muchas personas que los usaron no se dan cuenta es que puedes hacer el tuyo y eres muy útil.
¿Por qué debería hacer etiquetas de plantilla para que cubrimos lo que hacemos?: Crear nuestras propias funciones como The_Excerpt (), la siguiente pregunta obvia es “¿Por qué?” Básicamente, un buen conjunto de etiquetas de plantilla para su proyecto de la manera más segura de garantizar que sus archivos de tarea no se conviertan en una maraña de toma de datos. Si lo ha visto antes, sabe a lo que me refiero: en lugar de un miembro de la jerarquía de plantillas (piense en Single.php) para ser varias decenas de largas colas, para la compleja visualización de datos que encontrará cientos. ¿Qué quiero decir con la lógica de los datos que se hacen cargo? Bueno, imagine que construimos una visualización de un chico menor para un nuevo tipo de contenido en WordPress. Si nuestro contenido es una revisión de revisión, probablemente habremos adjunto una evaluación con las estrellas a cada revisión, probablemente algunas taxonomías de género y tal vez enumeremos otras cosas como el eslogan de la película, el “resumen de tres segundos” del revisor y muchos más. . Para obtener estas cosas, puede descubrir rápidamente que hace muchas llamadas como:
Estos, solos, no son el fin del mundo. Pero tienen muchos de ellos, especialmente con algo lógico a su alrededor, y se volverán muy rápido. La lógica compleja y demasiado larga de los datos en el interior es muy común en WordPress, porque es muy fácil: solo tiene que poner más PHP en el archivo (hablé más recientemente en los “cuatro tipos de plantillas …” ), pero eso no es una buena idea. Nuestras páginas temáticas deben ser lo más claras y simples posible, y crear nuestras propias etiquetas de plantilla es un gran primer paso. ¿Cuándo debo hacer el mío? Crear más líneas de código antes de saber que son necesarias es una excelente manera de perder el tiempo. Cuando haces esto depende parcialmente de ti. Puede crear etiquetas de plantilla mientras descubre que es feo en la plantilla, como fase de limpieza periódica. También puedes hacer todo al frente. Tal vez a medida que creamos nuestra taxonomía para un género, nos gustaría hacer la etiqueta de plantilla adecuada para tomarla. Tú decides. Mi única palabra de precaución: recuerda a Yagni. Yagni significa “no lo necesitarás” y es algo bueno para recordar si anteriormente cargas este tipo de etiquetas de plantilla “para cualquier eventualidad”. Crear más líneas de código antes de saber que son necesarias es una excelente manera de perder el tiempo. Si está pensando en ir al camino delantero, tenga cuidado de no perder horas seguidas creando funciones que nunca se despertará llamando.
Cómo hacer sus etiquetas de plantilla Si ha escrito muchas funciones de PHP, encontrará todo esto bastante aburrido. Si no lo ha hecho, podría tener un poco de miedo a toda la idea. Pero, básicamente, solo tiene que darse cuenta de que sus propias plantillas de WordPress son simplemente funciones de PHP. Entonces, ¿cómo te haces tú mismo? Escribe solo unas pocas funciones. Lo único importante que debe recordar es que nuestras etiquetas de plantilla de plantilla dependen del bucle. En nuestros ejemplos anteriores, get_the_id () se refiere a la publicación actual en el bucle (es decir, por The_Post ()). Esto significa que WordPress tendrá que tener una cierta publicación de $ global a la que nos referiremos en nuestras funciones. Un campo genérico personalizado no lo desanima si lo perdimos en el último párrafo. Explicaremos a continuación. Nuestro objetivo en este ejemplo es transformar el tipo de Raw Tomar las estrellas en un Getter genérico para todo nuestro campo personalizado. En el código, quiero: // hacer ¿Cómo? Bueno, solo una función simple como esta, colocada en las funciones del archivo.php de nuestro tema: función movrev_field ($ fac_name) {echo get_post_meta (get_the_id (), ‘_movrev _’. Bueno, es una función que toma una cadena, nuestro nombre corto para el campo, y pone esto en nuestra llamada en el lugar correcto. Debido a que todos nuestros meta-juego han sido “espaciados por los nombres” con el prefijo _movrev_, lo implementamos, para que no tengamos que recordar en todas partes.
Nota rápida sobre Global $ Post porque algunas personas prefieren tener claro el estado global de que sus funciones acceden (prefiero ocultarlo y vivir en la reconfortante ilusión de que WordPress no tiene un estado global …). También lo haré. notó que podría escribir la función anterior como: función movrev_field ($ field_name) {global $ post;echo get_post_meta ($ post-> id, ‘_movrev _’.Efectivamente, la llamada a Global $ Post accede al estado global que WordPress configura en el bucle, y luego obtenemos la ID de ese $ Post.Bajo el capó, esto es exactamente lo que get_the_id (), pero puede confundirse para los nuevos programadores no darse cuenta de que estos son equivalentes.
Obtener un campo personalizado específico para decir que preferimos ir al final. En lugar de esta función de parámetro, queremos una buena etiqueta de plantilla de fe sin argumentos en el estilo de WordPress. Si queremos mostrar nuestra evaluación que se realizará con un código como: calificación: <? Php the_star_rating (); ? } Una nota sobre el "espacio de nombre" El código es, con suerte, claramente, no debemos explicarlo. En cambio, hablemos un poco sobre el hecho de que acabo de escribir mi propia función que no comienza con lo que yo llamo "el nombre de una persona pobre" (para diferenciarlos de nombres de PHP reales). En general, es la mejor práctica cuando se escribe funciones en un ecosistema de WordPress para tener siempre un "espacio de nombre" frente a las funciones para evitar la colisión de nombres que desencadenará terribles quejas del PHP. (Recientemente traté mucho más sobre los espacios de nombre, así que verifique si no completa este párrafo).
Este es un buen consejo. Pero a veces, ya sea por la belleza de sus plantillas o por otra razón, vale la pena correr un riesgo calculado. Llamada mi función the_star_rating (), apuesto a que este sitio de WordPress nunca instalará otro complemento (o tema) con el nombre de la función y que el núcleo de WordPress nunca introducirá dicha etiqueta de plantilla. Estoy de acuerdo con esa apuesta, en este sitio teórico. Pero, si no es así, puede colocar fácilmente su "espacio de nombre" en el frente: function movrev_the_star_rating () {echo get_post_meta (get_the_id (), '_movrev_star_rating', true); } Para hacer que su etiqueta de plantilla realmente paga: el valor personalizado es una de las cosas realmente lindas, y las razones por las cuales las evaluaciones de las estrellas son un gran ejemplo, es que las etiquetas de plantilla son realmente rentables para usted cuando no solo desea devolver el valor, pero lo devuelve a un determinado formato. Supongamos que todo nuestro todo entre uno y cinco de la evaluación de las estrellas se debe renderizar con entidades HTML de una estrella completa (?, ✭) y una estrella vacía (?, ✩). (Desde un punto de vista estético, estos dos no coinciden con nuestra tarea, pero mantienen el código bastante simple). Entonces solo podemos usar un bucle simple para mostrar siempre cinco estrellas, mostrando el número correcto de relleno y vacío. :

función movrev_the_star_rating () {$ rating = get_post_meta (get_the_id (), ‘_movrev_star_rating’, true); para ($ i = 1; $ i = $ i) {echo ‘✭’; } else {echo ‘✩’; }}} Ahora, donde sea que uses esa etiqueta de plantilla, recibirás las estrellas jugadas en lugar de solo el número. ¡Eso es genial! Obteniendo los valores de la taxonomía como cadenas el último ejemplo, esta vez con una taxonomía en lugar de un campo. Hacer un elemento básico “Muestra los términos de la taxonomía relacionada asociada con este artículo” es una etiqueta de plantilla bastante simple. } La función dentro de nuestra etiqueta de plantilla es casi tan corta que no debemos crear nuestra propia plantilla. Pero supongamos: por razones de especificaciones del cliente, SEO, cualquier cosa, que no pueda dejar que estos términos estén vinculados. Bueno, aquí hay otra ventaja de crear sus propias etiquetas de plantilla: si siempre las usa y las ha usado antes de obtener el requisito “Nunca se vincule a los archivos de género”, puede cambiar rápidamente el comportamiento en todas las plantillas de página con un cambio simple. En la etiqueta de su plantilla, su versión sin enlaces es la más fácil de hacer como algo así: function mevrev_genre () {echo strip_tags (get_the_terms (get_the_id (), ‘género’););); } Si no está familiarizado, Strip_tags es solo una característica PHP que toma el HTML marcado y elimina todas las etiquetas HTML. En este caso, eliminaremos <a href=".s

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *