Todo lo que necesita saber sobre get_template_part () WordPress Function

Una vez leí que la mejor manera de aprender la programación es leer el código que otros han escrito. Después de todo, la mayoría de las veces que pase como desarrollador probablemente sea revisar, lijar y reparar el código que ha escrito u otro desarrollador en el pasado. Es por eso que me gusta tanto el software gratuito y el código abierto: nos da acceso al código fuente de excelentes herramientas y permite aprender de ellas. Si está interesado en el mundo de WordPress (e imagino que está, porque está aquí), el código fuente de WordPress Core o Gutenberg son dos muy buenas maneras de convertirse en un mejor profesional y aprender sobre el desarrollo del backend y el frontend.
Desde el primer lanzamiento de Gutenberg, he compartido todo lo que he aprendido hasta ahora sobre el desarrollo de frontend. Así, por ejemplo, hice una serie de publicaciones en las que le enseñé los elementos básicos de React, vi cómo reutilizar los componentes, expliqué cómo expandir a Gutenberg y discutimos las noticias de JavaScript para escribir un código fuente mejor. Llame a algunos artículos. nosotros escribimos. Bueno, hoy cambiaremos nuestros pasos y nos centraremos en WordPress Core nuevamente. ¿Por qué? No lo sé, tal vez porque el anuncio del próximo tema de veintiún veintiún años que apareció hace unos días es la excusa perfecta para hacer esto. Así que hablemos de uno de los elementos más importantes al crear temas en la función WordPress: get_template_part.

¡No te preocupes! Tomémoslo lentamente.
Temas de WordPress Primero, analice cómo funcionan los temas de WordPress, ¿verdad? Esencialmente, un tema es una colección de archivos que define la estructura HTML y los estilos CSS que utilizará nuestro sitio. Si piensa en el esqueleto de cualquier página web, verá que el mismo modelo siempre se repite: comenzamos abriendo las etiquetas HTML y Head. Allí agregamos scripts, estilos, metaéticos, etc.
Luego cerramos la etiqueta de la cabeza y abrimos la etiqueta del cuerpo, que contendrá el contenido visible de nuestro sitio.
Por lo general, el cuerpo de una página incluye un encabezado con el logotipo web, un menú, etc.
Luego siga el contenido en sí, que puede ser una página, un artículo de blog, una lista de publicaciones, el resultado de una búsqueda, etc.
Finalmente, generalmente termina con un sótano.
Finalmente, una vez que se ha presentado toda la página, cerramos todas las etiquetas y terminamos.
Entonces, sí, parece que cada página web sigue una estructura más o menos similar: hay una parte común (es decir, encabezado, menú, sótano …) y un área específica para el contenido (una publicación de blog, los resultados establecidos en cuáles Obtuve después de una búsqueda). , un producto de WooCommerce, etc.).
Debido a que a los programadores no les gusta repetir el código y somos (generalmente) personas organizadas, los temas de WordPress siguen una estructura de archivos muy modelada. En esta publicación que escribí hace unos meses, tiene una buena explicación de diferentes archivos sobre un tema, pero tenga en cuenta que hay:
Una hoja de estilo: style.css,
Un archivo Header.php para “abrir” la página web (es decir, eliminar la etiqueta de la cabeza y normalmente la parte inicial del cuerpo que es común a todas las páginas),
Otro archivo Footer.php que “cierra” la página (es decir, agregue el sótano y cierre la etiqueta HTML) y muchos archivos adicionales para los diferentes tipos de contenido que queremos jugar.
¿Cuál es la función get_template_part y para qué sirve? Lo primero que debe hacer cuando se encuentre con una nueva característica es lo contrario de lo que hace cuando su padre le pide que lo ayude a programar su nueva sala de limpieza: lea la documentación. Así que hagamos esto con nuestra función, mirando Codex:
Get_template_part ofrece un mecanismo simple para temas infantiles para sobrecargar secciones de código reutilizables en el tema. Incluye la parte de la plantilla llamada por un tema o, si se especifica un nombre, se incluirá una parte especializada. Si el tema no contiene el archivo {Slag} .php, entonces no se incluirá ninguna plantilla. La plantilla se incluye utilizando requerir, no requirir_once, por lo que puede incluir la misma parte de la plantilla varias veces. Para el parámetro $ Nombre, si el archivo se llama “{Slang} -special.php”, especifique “especial”. Nota: get_template_part () Silent get_template_part docs en wordpress.org ¿ver? En menos de un minuto obtuve toda la información que necesitaba. Ahora sabemos que esta función se usa para crear “piezas reutilizables” en un tema (evitando así la duplicación del código) y lo hace de tal manera que un tema infantil puede adaptarse. También tenemos información sobre sus parámetros, su operación interna (utiliza la función PHP requiere) y lo que podemos esperar de ella (“fallar en silencio”).
Desafortunadamente, hay algunas cosas que aún no están claras, como estos archivos {Slug} .php y {Slug} -special.php que mencionan. ¿Qué son? ¿Qué contienen? ¿Qué estás haciendo? A muchas preguntas difíciles que se responden solo con respecto a la documentación, por lo que es hora de pasar a ejemplos. Cómo crear plantillas parciales en nuestro tema para echar un vistazo a los veinte veintiuna para averiguar si usa estas “plantillas parciales” Y, si lo hace, cómo se ve y qué debe hacer para implementarlos en su propio tema. Si lee mi publicación sobre la jerarquía de archivos de un tema de WordPress, sabrá que “index.php es la plantilla predeterminada para nuestro tema. Se utiliza para reproducir cualquier contenido en nuestro sitio, siempre que el contenido no tenga una plantilla específica diseñada para él “. Debido a que esta es una plantilla predeterminada, creo que es una buena idea comenzar desde allí. Este es el contenido index.php en el tema de veintisiete veintiún:
get_HeaAder (); If (have_posts ()) {// cargar publicaciones bucle. while (have_posts ()) {the_post (); get_template_part (‘Template-Parts/Content/Content’); } // navegación anterior/siguiente página. Twenty_twenty_one_the_posts_navigation (); } else {// Si no hay contenido, incluye la plantilla “no encontradas” encontradas “. get_template_part (‘Template-Party/Content/Content-None’); } Get_footer (); Como puede ver, tenemos todas las partes que hemos comentado anteriormente:

Incluye el encabezado usando get_header.

Renderizar el contenido en sí.
Cierre la página con get_footer.
Lo interesante aquí, obviamente, es el área de “contenido” de index.php. Específicamente, vemos que tenemos un pequeño control para saber si vemos o no contenido válido (la función have_posts del bucle de WordPress) y, dependiendo de si tenemos o no, cargamos una plantilla parcial (…/contenido) u otro (…/ content-none). Si observamos el contenido parcial de content.php, veremos sobre lo siguiente: <artículo <? Php post_class (); ? …
<? Php the_content (…); wp_link_pages (…); ? ? Todo lo que tenemos es una pequeña plantilla diseñada para reproducir contenido genérico de WordPress, como una publicación de blog. Tenga en cuenta que el esqueleto HTML resultante no es más que una etiqueta con un título, su contenido y un sótano, todos utilizando etiquetas de plantilla de WordPress para extraer el contenido real.
Por qué la API de WordPress es maravillosa, incluso si no sabía que todas estas funciones (get_header, get_footer o estrella hoy: get_template_part), estoy bastante seguro de que ha organizado su código después de un enfoque similar. Después de todo, parece lo suficientemente lógico como para crear una plantilla de encabezado, otra para el sótano, otro para contenido … y luego tener un archivo especial o algo para pegarlos a todos, ¿verdad? Si siguió dicho enfoque, apuesto a que su archivo index.php habría demostrado que: request_once 'header.php'; If (have_posts ()) {// cargar publicaciones bucle. while (have_posts ()) {the_post (); Requiere 'plantilla-parts/content.php'; } // navegación anterior/siguiente página. Twenty_twenty_one_the_posts_navigation (); } else {// Si no hay contenido, incluye la plantilla "no encontradas" encontradas ". Requiere 'plantilla-parts/content-none.php'; } Require_once 'Footer.php'; que es muy similar al que tenemos en veintiún veintiún años. Entonces, en este momento, podría preguntarse: ¿qué gano usando funciones específicas de WordPress? No es lo mismo usar directamente una necesidad de PHP, especialmente porque, según la documentación de WordPress, ¿eso es justo lo que usan estas funciones auxiliares?
Bueno, la razón principal se menciona en la documentación en sí: facilita la creación de un tema para niños. Por lo tanto, si crea un tema infantil y usa get_template_part, WordPress buscará la plantilla en el niño y, si no, usará el padre. ¡Pero eso no es todo! Las funciones de WordPress generalmente están llenas de filtros y acciones que le permiten adaptar el resultado final. Por ejemplo, si observamos la función interna get_template_part de WP-Includes/General-Template.php: function get_template_part (…) {do_action ("get_template_part _ {$ slug}",); … do_action ('get_template_part', …); If (! Localate_template (…)) {false return; }} Veremos que tenemos algunas acciones que los complementos y el tema mismos pueden usar. Y si continuamos tirando del hilo, incluso podremos ver cómo se localiza WordPress (ubate_template) y carga la plantilla que usará: function ubate_template ($ platplate_names, …) {$ place = ''; Foreach ($ Template_names como $ name) {if (file_exists (stylesheetpath. "/$ Name")) {$ ubicado = …; // en la ruptura del tema infantil; } Else if (file_exist (stylesheetpath. "/$ Name")) {$ place = …; // en la ruptura del tema de los padres; } Else {…}} if ($ place) {lom_template ($ place, $ reequire_once, $ args); } devolución $ ubicado; } Espero que la publicación de hoy te ayude a comprender un poco mejor cómo funcionan los temas de WordPress. También espero que le haya mostrado cómo aprender sobre WordPress leyendo su documentación y navegando por el código fuente. Y si te gustó, distribílalo a tus amigos y déjanos un comentario. Imagen presentada por Joshua Sortino en Unsplash.

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 *