{"id":233583,"date":"2023-02-18T13:27:00","date_gmt":"2023-02-18T10:27:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233583"},"modified":"2022-11-11T00:28:41","modified_gmt":"2022-11-10T21:28:41","slug":"tutorial-de-temas-de-wordpress-para-principiantes-parte-3-contenido-dinamico","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/tutorial-de-temas-de-wordpress-para-principiantes-parte-3-contenido-dinamico\/","title":{"rendered":"Tutorial de temas de WordPress para principiantes \u2013 Parte 3: Contenido din\u00e1mico"},"content":{"rendered":"\n<p>En esta lecci\u00f3n del tutorial de temas de WordPress para principiantes, aprenderemos sobre los ganchos en WordPress y agregaremos algunos ganchos en nuestro tema que se requieren para que un tema funcione correctamente con WordPress y los complementos. Tambi\u00e9n comenzaremos a acceder a contenido din\u00e1mico de WordPress en nuestro encabezado, como obtener autom\u00e1ticamente el t\u00edtulo de la p\u00e1gina actual.<\/p>\n<p>Primero, debemos aprender un poco sobre los ganchos en WordPress. Los ganchos son una funcionalidad b\u00e1sica con la que debe familiarizarse. No soy fan\u00e1tico de mostrar un mont\u00f3n de c\u00f3digo en el que necesitas copiar y pegar sin saber lo que realmente hace. Si est\u00e1 siguiendo este tutorial, quiere aprender esto correctamente, \u00bfverdad?<\/p>\n<p>No te preocupes, ser\u00e9 breve por ahora. Aprenderemos m\u00e1s sobre esto m\u00e1s adelante en este tutorial.<\/p>\n<h2>Ganchos en WordPress<\/h2>\n<p>En breve; Como WordPress ejecuta todo el c\u00f3digo para cargar y renderizar una p\u00e1gina, hay ciertos &quot;puntos de control&quot;, que llamamos ganchos. Estos puntos es donde WordPress permite a los desarrolladores modificar o agregar su propio c\u00f3digo. WordPress ha definido un mont\u00f3n de &quot;puntos de control&quot; donde, cada uno con un nombre \u00fanico. Si conoce el nombre, puede agregar su propio c\u00f3digo en estos puntos de control. Y as\u00ed decirle f\u00e1cilmente a WordPress que ejecute su c\u00f3digo cuando llegue a ese punto de control como parte de su proceso.<\/p>\n<p>Hay dos tipos de anzuelos; acciones y filtros. <strong>Las acciones<\/strong> son puntos en el c\u00f3digo donde puede agregar c\u00f3digo personalizado, por ejemplo, generar algo o hacer algo para sus propios fines. <strong>Los filtros<\/strong> son puntos en el c\u00f3digo donde puede modificar una determinada variable antes de que se use o se env\u00ede. Son muy similares, pero los filtros se adjuntan a una variable espec\u00edfica y las acciones no.<\/p>\n<p>Los complementos, los temas y el propio WordPress pueden &quot;enganchar&quot; su c\u00f3digo <code>add_action()<\/code>para acciones y <code>add_filter()<\/code>filtros. Estas dos funciones le dicen a WordPress que ejecute el c\u00f3digo enganchado siempre que la ejecuci\u00f3n llegue a estos ganchos.<\/p>\n<p>Para definir ganchos que usas <code>do_action()<\/code>para acciones y <code>apply_filters()<\/code>para filtros.<\/p>\n<p>Para cualquiera que est\u00e9 interesado en saber m\u00e1s, tengo otra <a href=\"http:\/\/awhitepixel.com\/blog\/all-about-hooks-in-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">publicaci\u00f3n que detalla los ganchos<\/a> en WordPress.<\/p>\n<p>Un tema de WordPress debe incluir algunos ganchos (acciones) importantes y espec\u00edficos. Estos enlaces permiten que WordPress, los complementos y nuestro propio tema se conecten y hagan cosas cr\u00edticas. Veamos esos ganchos cr\u00edticos que necesitamos agregar.<\/p>\n<h2>Los ganchos de encabezado y pie de p\u00e1gina del tema<\/h2>\n<p>Todos los temas de WordPress deben tener dos ganchos en las plantillas. Se debe colocar una acci\u00f3n en el encabezado (dentro de la <code>&lt;head&gt;<\/code>etiqueta) y otra en el pie de p\u00e1gina (justo antes de cerrar la <code>&lt;\/body&gt;<\/code>etiqueta). Estos dos ganchos son absolutamente necesarios para que WordPress, su tema y cualquier complemento puedan agregar sus scripts y c\u00f3digos de estilos a su tema.<\/p>\n<p>Los ganchos que necesitamos son <code>wp_head<\/code>y <code>wp_footer<\/code>para el encabezado y el pie de p\u00e1gina, respectivamente.<\/p>\n<p>Normalmente, cuando queremos ejecutar un gancho, llamamos a <code>do_action(&lt;hook name&gt;)<\/code>. Pero debido a que estos dos ganchos son tan cr\u00edticos, WordPress los ha simplificado para nosotros poni\u00e9ndolos en una llamada de funci\u00f3n simple. Entonces, para estos dos ganchos, simplemente puede usar <code>wp_head()<\/code>y <code>wp_footer()<\/code>. En segundo plano, estos dos ejecutan el <code>do_action()<\/code>.<\/p>\n<p>Agreguemos estos dos ganchos (llamadas a funciones) a nuestras plantillas de encabezado y pie de p\u00e1gina, y veamos qu\u00e9 sucede.<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"utf-8\"&gt;\n        &lt;title&gt;A White Pixel Theme&lt;\/title&gt;\n\u00a0\n        &lt;?php wp_head(); ?&gt;\n    &lt;\/head&gt;\n&lt;body&gt;<\/code><\/pre>\n<pre><code>        &lt;?php wp_footer(); ?&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Presiona actualizar en tu interfaz. Si ha iniciado sesi\u00f3n, ahora deber\u00eda ver aparecer la barra de administraci\u00f3n de WordPress. Esto significa que WordPress ahora puede agregar con \u00e9xito sus scripts y estilos a su tema.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152824-61e4fb80a88c0.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152824-61e4fb80a88c0.png\" alt=\"Tutorial de temas de WordPress para principiantes \u2013 Parte 3: Contenido din\u00e1mico\" ><\/a><\/p>\n<p>Puede verificar su fuente HTML y ver que su encabezado ahora contiene bastante c\u00f3digo. Este es un c\u00f3digo que no agregaste a tu tema. Como puede ver, el mismo WordPress est\u00e1 usando los ganchos que agregamos para hacer sus propias cosas.<\/p>\n<p>Pasemos de los ganchos y comencemos a ver c\u00f3mo podemos obtener contenido din\u00e1micamente de WordPress y mostrarlo en nuestro encabezado.<\/p>\n<h2>Contenido din\u00e1mico en el encabezado<\/h2>\n<p>Digamos a WordPress que establezca din\u00e1micamente el t\u00edtulo del documento (para la <code>&lt;title&gt;<\/code>etiqueta). Para ello utilizaremos una funci\u00f3n, (que por cierto tiene filtro), llamada <code>wp_title()<\/code>. Como aprendimos anteriormente, debido a que <code>wp_title()<\/code>es un filtro, usted, WordPress o los complementos pueden modificar la salida. Agregaremos un filtro a esto m\u00e1s adelante en este tutorial.<\/p>\n<p>La funci\u00f3n <code>wp_title()<\/code>toma <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_title\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">varios argumentos<\/a> que puede ajustar a su gusto, pero por ahora agregar\u00e9 una cadena vac\u00eda para que solo muestre el t\u00edtulo de cualquier p\u00e1gina en la que estemos.<\/p>\n<p>Cambie su <code>&lt;title&gt;<\/code>etiqueta <code>header.php<\/code>a esto:<\/p>\n<pre><code>&lt;title&gt;&lt;?php wp_title(''); ?&gt;&lt;\/title&gt;<\/code><\/pre>\n<p>Los entusiastas de ustedes podr\u00edan haber notado que la p\u00e1gina principal no generar\u00e1 un t\u00edtulo. Este es el comportamiento est\u00e1ndar de WordPress que corregiremos m\u00e1s adelante en este tutorial (lo haremos con la ayuda del filtro). Si visita una sola publicaci\u00f3n o p\u00e1gina, debe obtener el t\u00edtulo de la publicaci\u00f3n.<\/p>\n<p>WordPress tiene una funci\u00f3n ingeniosa que genera din\u00e1micamente un mont\u00f3n de clases para la <code>&lt;body&gt;<\/code>etiqueta dependiendo de la p\u00e1gina en la que nos encontremos; llamado <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/body_class\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">body_class<\/a>. Actualice la <code>&lt;body&gt;<\/code>etiqueta en <code>header.php<\/code>esto:<\/p>\n<pre><code>&lt;body &lt;?php body_class(); ?&gt;&gt;<\/code><\/pre>\n<p>Actualice y eche un vistazo a todas las clases agregadas a la <code>&lt;body&gt;<\/code>etiqueta. Echa un vistazo a las diferentes p\u00e1ginas (portada, individual, categor\u00eda). Todas estas clases son muy \u00fatiles para dise\u00f1ar y diferenciar diferentes partes similares. Lo m\u00e1s probable es que utilice algunos de estos en su CSS.<\/p>\n<p>Para seguir las buenas pr\u00e1cticas de HTML, tambi\u00e9n debemos informar sobre el idioma del sitio en el HTML. Para ello utilizamos una funci\u00f3n de WordPress para obtener el idioma desde Ajustes; <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/language_attributes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">atributos_idioma<\/a>.<\/p>\n<pre><code>&lt;html &lt;?php language_attributes(); ?&gt;&gt;<\/code><\/pre>\n<p>Y finalmente, me gustar\u00eda agregar algunas etiquetas meta que no son espec\u00edficas de WordPress, pero siguen pr\u00e1cticas comunes de dise\u00f1o web. As\u00ed es <code>header.php<\/code>como se ve el archivo completo:<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html class=\"no-js\" &lt;?php language_attributes(); ?&gt;&gt;\n&lt;head&gt;\n    &lt;meta charset=\"utf-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n\u00a0\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;&lt;?php wp_title(''); ?&gt;&lt;\/title&gt;\n\u00a0\n    &lt;?php wp_head(); ?&gt;\n&lt;\/head&gt;\n&lt;body &lt;?php body_class(); ?&gt;&gt;<\/code><\/pre>\n<p>Para el siguiente paso de este tutorial, lo dejaremos <code>header.php<\/code>y profundizaremos <code>index.php<\/code>para aprender a obtener contenido m\u00e1s din\u00e1mico, como publicaciones.<\/p>\n<h2>Documentaci\u00f3n sobre los m\u00e9todos utilizados<\/h2>\n<ul>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_head\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cabeza_wp<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_footer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_footer<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_title\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_title<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/body_class\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cuerpo_clase<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/language_attributes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">atributos_idioma<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta lecci\u00f3n, aprender\u00e1 sobre los ganchos en WordPress y c\u00f3mo acceder y generar contenido din\u00e1mico de WordPress en el encabezado.<\/p>\n","protected":false},"author":1,"featured_media":224746,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[924,892,892,716,716,831,914,1110,914,831,924,840,840,861,861],"tags":[1172],"class_list":["post-233583","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asignaturas","category-codigo","category-desarrollador","category-guia-para-principiantes","category-otro","category-n-a","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=233583"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233583\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/224746"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}