{"id":233816,"date":"2023-02-23T10:00:00","date_gmt":"2023-02-23T07:00:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233816"},"modified":"2022-11-11T12:35:39","modified_gmt":"2022-11-11T09:35:39","slug":"tutorial-de-temas-de-wordpress-para-principiantes-parte-9-menus-y-areas-de-widgets","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/tutorial-de-temas-de-wordpress-para-principiantes-parte-9-menus-y-areas-de-widgets\/","title":{"rendered":"Tutorial de temas de WordPress para principiantes \u2013 Parte 9: Men\u00fas y \u00e1reas de widgets"},"content":{"rendered":"\n<p>Esta lecci\u00f3n cubre c\u00f3mo agregar dos funciones principales de WordPress a nuestro tema; men\u00fas y \u00e1reas de widgets. Aprendemos c\u00f3mo registrar una ubicaci\u00f3n para el men\u00fa de navegaci\u00f3n principal de un sitio y generar el men\u00fa en nuestras plantillas, adem\u00e1s de permitir agregar widgets en nuestra barra lateral y \u00e1rea de pie de p\u00e1gina.<\/p>\n<p>Los entusiastas de ustedes pueden haber notado que ni los &quot;Men\u00fas&quot; ni los &quot;Widgets&quot; son accesibles desde el men\u00fa &quot;Apariencia&quot; en el panel de administraci\u00f3n. Esto se debe a que nuestro tema a\u00fan no los admite. Lo arreglaremos en esta lecci\u00f3n, comenzando con los men\u00fas. .<\/p>\n<h2>men\u00fas de WordPress<\/h2>\n<p>Hay dos partes en la adici\u00f3n de men\u00fas en su tema. Primero debe definir una o m\u00e1s ubicaciones de men\u00fa en su archivo <code>functions.php<\/code>. Un ejemplo es un men\u00fa principal que estar\u00e1 en el encabezado de todas las p\u00e1ginas. La segunda parte es agregar algo de c\u00f3digo en el lugar donde desea que aparezca el men\u00fa. Por ejemplo en <code>header.php<\/code>el lugar en el que desea colocar el men\u00fa principal.<\/p>\n<h3>Registro de una ubicaci\u00f3n de men\u00fa<\/h3>\n<p>En este tutorial, agregaremos una ubicaci\u00f3n de men\u00fa para la navegaci\u00f3n principal del sitio y colocaremos su salida en nuestro archivo <code>header.php<\/code>. Comencemos registrando la ubicaci\u00f3n en <code>functions.php<\/code>, lo cual se hace usando la funci\u00f3n <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_nav_menu<\/a> :<\/p>\n<pre><code>add_action('init', 'wptutorial_register_menu');\nfunction wptutorial_register_menu() {\n    register_nav_menu('main-nav', __('Main Navigation', 'wptutorial'));\n}<\/code><\/pre>\n<p>Necesitamos engancharnos al gancho <code>init<\/code>, que WordPress ha decidido que es un buen &quot;punto de control&quot; para registrar las ubicaciones del men\u00fa. Dentro de nuestra funci\u00f3n llamamos a <code>register_nav_menu()<\/code>la que acepta un m\u00ednimo de dos par\u00e1metros; el identificador del men\u00fa, que es un slug \u00fanico que utilizar\u00e1 como identificador al representar el men\u00fa, y el nombre visible del men\u00fa que aparece en el panel de administraci\u00f3n. Tenga en cuenta que envolv\u00ed el nombre dentro <code>__()<\/code>para hacerlo traducible, como aprendimos en <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-8-translation-of-your-theme\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">el paso anterior<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0df88967.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-151855-61e4d0df88967.png\" alt=\"Tutorial de temas de WordPress para principiantes \u2013 Parte 9: Men\u00fas y \u00e1reas de widgets\" ><\/a><\/p>\n<p>Si actualiza su panel de administraci\u00f3n, ahora deber\u00eda ver un nuevo elemento de submen\u00fa en &quot;Apariencia&quot;; \u00abMen\u00fas&quot;. \u00a1Felicitaciones, su tema ahora admite la creaci\u00f3n de men\u00fas!<\/p>\n<p>Si no est\u00e1 familiarizado con la creaci\u00f3n y administraci\u00f3n de men\u00fas en WordPress, <a href=\"https:\/\/wordpress.org\/support\/article\/appearance-menus-screen\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">esta es una buena gu\u00eda<\/a> para usted.<\/p>\n<p>Cree un nuevo men\u00fa en &quot;Apariencia&gt; Men\u00fas&quot;: puede contener lo que desee, solo agregu\u00e9 las publicaciones ficticias que hab\u00eda creado en mi WordPress.<\/p>\n<p>Despu\u00e9s de guardar su primer men\u00fa, aparecer\u00e1 una nueva secci\u00f3n llamada &quot;Configuraci\u00f3n del men\u00fa&quot; debajo del \u00e1rea de edici\u00f3n del men\u00fa, que le permite elegir una ubicaci\u00f3n para este men\u00fa. Deber\u00eda enumerar una ubicaci\u00f3n disponible, que es la que creamos; &quot;Navegaci\u00f3n Principal&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e03b2f8.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-151855-61e4d0e03b2f8.png\" alt=\"Tutorial de temas de WordPress para principiantes \u2013 Parte 9: Men\u00fas y \u00e1reas de widgets\" ><\/a><\/p>\n<p>Coloque una marca en &quot;Navegaci\u00f3n principal&quot; y presione Guardar. Ahora su men\u00fa reci\u00e9n creado est\u00e1 conectado a la ubicaci\u00f3n y se mostrar\u00e1 autom\u00e1ticamente dondequiera que agregue el c\u00f3digo para generar esta ubicaci\u00f3n de men\u00fa. Hagamos eso ahora.<\/p>\n<h3>Salida de una ubicaci\u00f3n de men\u00fa en una plantilla<\/h3>\n<p>Abra <code>header.php<\/code>y donde quiera que est\u00e9 la salida del men\u00fa, agregue una llamada a <code>wp_nav_menu()<\/code>. Esta funci\u00f3n acepta un mont\u00f3n de argumentos en una matriz para personalizar realmente la salida del men\u00fa. Lo m\u00e1s importante es que necesitamos el par\u00e1metro que le indica que busque la ubicaci\u00f3n de &quot;Navegaci\u00f3n principal&quot;. Para hacer eso, agregamos el argumento &#8216; <code>theme_location<\/code>&#8216; y lo configuramos como el identificador de nuestro men\u00fa; &#8216; <code>main-nav<\/code>&#8216;.<\/p>\n<p>Agregu\u00e9 la salida del men\u00fa justo despu\u00e9s del inicio de la <code>&lt;body&gt;<\/code>etiqueta, pero si ha desarrollado sus plantillas con HTML, decida usted mismo d\u00f3nde desea que aparezca el men\u00fa.<\/p>\n<pre><code>...\n&lt;body &lt;?php body_class(); ?&gt;&gt;\n    &lt;nav class=\"main-nav\"&gt;&lt;?php wp_nav_menu(['theme_location' =&gt; 'main-nav']); ?&gt;&lt;\/nav&gt;<\/code><\/pre>\n<p>Actualice su interfaz y deber\u00eda ver el men\u00fa que cre\u00f3 en el administrador como una lista desordenada al comienzo de la plantilla.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e11c102.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-151855-61e4d0e11c102.png\" alt=\"Tutorial de temas de WordPress para principiantes \u2013 Parte 9: Men\u00fas y \u00e1reas de widgets\" ><\/a><\/p>\n<p>Como de costumbre, lo animo a profundizar un poco m\u00e1s en los par\u00e1metros de la documentaci\u00f3n del Codex <code>wp_nav_menu<\/code>de <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> y jugar con la forma en que desea que sea el resultado. Por ejemplo: puede hacer que no se muestre en una lista HTML, puede limitar los elementos del men\u00fa solo a ciertos niveles (para evitar submen\u00fas) y m\u00e1s.<\/p>\n<p>Si tiene curiosidad sobre la parte de estilo; eche un vistazo a las clases que WordPress agrega autom\u00e1ticamente a cada elemento del men\u00fa. Podr\u00e1 agregar f\u00e1cilmente estilos para el elemento de men\u00fa activo, elementos que tienen elementos secundarios, elemento principal de un elemento secundario activo, etc.<\/p>\n<p>Nota: cualquier usuario de tema siempre puede crear varios men\u00fas y optar por mostrarlos fuera de las ubicaciones registradas de un tema mediante widgets. Sin embargo, para hacer esto, su tema necesita definir algunas \u00e1reas de widgets. Hagamos eso a continuaci\u00f3n.<\/p>\n<h2>\u00c1reas de widgets<\/h2>\n<p>Las \u00e1reas de widgets funcionan de manera bastante similar en cuanto a c\u00f3mo funcionan los men\u00fas. Usted registra una ubicaci\u00f3n (para los widgets, define un \u00e1rea donde el usuario del tema puede colocar los widgets), y donde quiera que aparezca la ubicaci\u00f3n\/\u00e1rea en sus plantillas, agrega un poco de c\u00f3digo que se refiere a la identificaci\u00f3n del identificador que proporcion\u00f3 en su c\u00f3digo de registro.<\/p>\n<p>Definamos un \u00e1rea de widgets en nuestra barra lateral y otra en el pie de p\u00e1gina. Es com\u00fan que los temas brinden m\u00faltiples \u00e1reas de widgets en el pie de p\u00e1gina para dividirlas bien en columnas, pero en este tutorial solo agregaremos una al pie de p\u00e1gina.<\/p>\n<p>Las \u00e1reas de widgets se denominan &quot;barras laterales&quot; en el c\u00f3digo de WordPress, pero no son exclusivamente para la barra lateral derecha de los sitios web de anta\u00f1o. Parece que alg\u00fan nombre heredado se qued\u00f3 en una \u00e9poca en la que los sitios web generalmente solo ten\u00edan un \u00e1rea de widgets en la barra lateral. No piense que las &quot;barras laterales&quot; solo pueden referirse a las barras laterales reales.<\/p>\n<h3>Registrar \u00e1reas de widgets<\/h3>\n<p>Comenzamos registrando dos \u00e1reas de widgets en nuestro archivo <code>functions.php<\/code>. Usamos la funci\u00f3n <code>register_sidebar<\/code>para registrar nuestras barras laterales, enganchadas al <code>widgets_init<\/code>gancho, que WordPress ha definido como el mejor gancho para registrar \u00e1reas de widgets (y widgets personalizados).<\/p>\n<pre><code>add_action('widgets_init', 'wptutorial_register_sidebar');\nfunction wptutorial_register_sidebar() {\n    register_sidebar([\n        'name' =&gt; __('Sidebar Widget Area', 'wptutorial'),\n        'id' =&gt; 'sidebar-area'\n    ]);\n    register_sidebar([\n        'name' =&gt; __('Footer Widget Area', 'wptutorial'),\n        'id' =&gt; 'footer-area'\n    ]);\n}<\/code><\/pre>\n<p>La <code>register_sidebar()<\/code>funci\u00f3n acepta bastantes argumentos, como m\u00ednimo necesita el argumento &#8216;id&#8217; y &#8216;name&#8217;. Hay par\u00e1metros disponibles para definir c\u00f3mo desea que se generen los envoltorios HTML del widget.<\/p>\n<p>Actualice su panel de administraci\u00f3n, y ahora deber\u00eda ver el elemento de men\u00fa &quot;Widgets&quot; que aparece en &quot;Apariencia&quot;. En el panel de administraci\u00f3n de &quot;Widgets&quot;, puede ver dos \u00e1reas de widgets disponibles en el \u00e1rea derecha; que es nuestra &quot;\u00c1rea de widgets de barra lateral&quot; y &quot;\u00c1rea de widgets de pie de p\u00e1gina&quot;.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151855-61e4d0e22862e.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-151855-61e4d0e22862e.png\" alt=\"Tutorial de temas de WordPress para principiantes \u2013 Parte 9: Men\u00fas y \u00e1reas de widgets\" ><\/a><\/p>\n<p>Coloque un widget aleatorio en nuestra barra lateral o \u00e1rea de widgets de pie de p\u00e1gina, solo para que pueda verlo en acci\u00f3n.<\/p>\n<h3>Salida de un \u00e1rea de widget en una plantilla<\/h3>\n<p>La \u00faltima parte es enviar las \u00e1reas de los widgets a nuestras plantillas. Para ello utilizamos la funci\u00f3n <code>dynamic_sidebar()<\/code>y proporcionamos el identificador como par\u00e1metro. Abre <code>sidebar.php<\/code>y agrega lo siguiente dentro de las <code>&lt;aside&gt;<\/code>etiquetas:<\/p>\n<pre><code>&lt;aside class=\"sidebar\"&gt;\n    &lt;ul&gt;&lt;?php dynamic_sidebar('sidebar-area'); ?&gt;&lt;\/ul&gt;\n&lt;\/aside&gt;<\/code><\/pre>\n<p>Observe que lo envolv\u00ed dentro de una etiqueta de lista desordenada (<code>&lt;ul&gt;<\/code>). Esto se debe a que, de forma predeterminada, <code>dynamic_sidebar<\/code>genera todos los widgets envueltos en <code>&lt;li&gt;<\/code>elementos. Te animo a que juegues con los par\u00e1metros de salida si no te gusta que los widgets sean una lista.<\/p>\n<p>En cuanto al pie de p\u00e1gina, lo agregamos al comienzo de <code>footer.php<\/code>, envuelto dentro de una <code>&lt;footer&gt;<\/code>etiqueta (si lo desea).<\/p>\n<pre><code>    &lt;footer&gt;\n        &lt;ul&gt;&lt;?php dynamic_sidebar('footer-area'); ?&gt;&lt;\/ul&gt;\n    &lt;\/footer&gt;\n    &lt;?php wp_footer(); ?&gt;\n...<\/code><\/pre>\n<p>Eso es todo para los men\u00fas y las \u00e1reas de widgets. Su tema ahora tiene la flexibilidad del usuario para crear un nuevo men\u00fa y usar un widget para mostrarlo en la barra lateral o en el pie de p\u00e1gina. En la <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-10-fleshing-out-templates\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">siguiente lecci\u00f3n<\/a> de esta serie de tutoriales, crearemos m\u00e1s plantillas para nuestro tema.<\/p>\n<h2>Documentaci\u00f3n sobre los m\u00e9todos utilizados<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_action\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a\u00f1adir_acci\u00f3n<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">registrarse_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_nav_menu\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_nav_menu<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">registro_barra lateral<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/dynamic_sidebar\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">barra_lateral_din\u00e1mica<\/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>Esta lecci\u00f3n cubre c\u00f3mo agregar men\u00fas de navegaci\u00f3n registrando la ubicaci\u00f3n del men\u00fa y tambi\u00e9n registrando y colocando un \u00e1rea de widgets en WordPress.<\/p>\n","protected":false},"author":1,"featured_media":224072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[924,892,892,716,716,747,831,1110,747,831,924,840,840,861,861],"tags":[1172],"class_list":["post-233816","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asignaturas","category-codigo","category-desarrollador","category-fuente-abierta","category-guia-para-principiantes","category-n-a","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233816","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=233816"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233816\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/224072"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}