Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Codifica un menú de hamburguesa para usuarios móviles en WordPress

by
Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Final product image
What You'll Be Creating

Si quieres que tu sitio sea responsivo, ¿y quién no?, es importante asegurarte de que tu menú de navegación principal funcione bien en pantallas pequeñas.

Los menús de navegación grandes pueden ocupar demasiado espacio en un teléfono móvil, o si no lo hacen, pueden ser demasiado pequeños para ser legibles o para permitir tocar el enlace correcto con fiabilidad.

Un menú de hamburguesa es un medio para evitar esto. Se trata de un menú que permanece oculto hasta que el usuario da un toque sobre él. La razón por la que se le denomina menú de hamburguesa es porque el símbolo que lo representa consiste en tres líneas horizontales una sobre la otra, algo que se asemeja ligeramente a una hamburguesa.

Existen plugins que convertirán tu menú de navegación principal de WordPress en un menú de hamburguesa (incluidos los disponibles en Code Canyon), pero ¿qué pasa si quieres crear uno en tu propio tema?

En este tutorial, aprenderás cómo hacerlo.

Lo que necesitarás

Para seguir con este tutorial, necesitarás lo siguiente:

  • Una instalación de desarrollo de WordPress.
  • Un editor de código.
  • Un tema que puedes editar (si estás usando un tema de terceros, necesitarás crear un tema hijo).

El menú inicial

El código que escribiremos se aplicará al menú generado por WordPress utilizando su propio sistema de menú de navegación. No es necesario crear con código un menú nuevo o diferente para dispositivos móviles. (Una de las cosas que más me fastidia son los sitios que tienen una navegación diferente en su versión para ordenadores de escritorio y en su versión móvil, ya que normalmente esto va en detrimento de la experiencia de los usuarios en dispositivos móviles.)

Voy a demostrar esta técnica en relación al menú en mi propio sitio y añadiré el código al archivo header.php, así como a la hoja de estilos y también un nuevo archivo JavaScript.

Aquí tienes el menú para ordenadores de escritorio:

horizontal navigation menu centered below a banner image

Es un menú horizontal situado bajo la imagen del banner y la cabecera y justo sobre el contenido.

En el móvil, la imagen del banner no es visible. Quiero eliminar el menú y reemplazarlo con un símbolo de hamburguesa. Cuando el usuario haga clic sobre este símbolo, aparecerá el menú.

Aquí está el código para el menú:

Todo está envuelto en un div con la clase .menu.main. Hay un enlace de salto para los lectores de pantalla y después la función wp_nav_menu() que incluye 'container_class' 'principal-nav', que añade una clase CSS adicional al propio menú. Podemos usar más adelante esas clases para aplicar estilo al menú para móviles.

Así que empecemos.

Añadir el símbolo de la hamburguesa

El primer paso consiste en crear el código para el símbolo de la hamburguesa en el archivo header.php y aplicarle estilo de forma que solo sea visible en dispositivos móviles.

En el archivo header.php, añade este código dentro del elemento header (no dentro de la navegación):

En mi caso, esto significa que el código para la cabecera (header) y la navegación es como sigue (ten en cuenta que en el código de abajo he omitido el banner, aunque sí está en mi archivo):

Así que el símbolo de hamburguesa (que se muestra usando el código HTML ☰) está en la cabecera, y el menú de navegación está bajo él.

Ahora, vamos a añadir un poco de estilo para el elemento toggle-nav.

Aplicar estilo al símbolo de la hamburguesa

En primer lugar, tenemos que ocultar el símbolo de la hamburguesa para ordenadores de escritorio.

En tu hoja de estilo, añade esto para ocultar el símbolo de la hamburguesa:

Pero es necesario que te asegures de que se muestra en la versión móvil. Por lo tanto, añade una media query o "consulta de medios", utilizando el ancho máximo que estés utilizando para la media query general. Aquí está la mía:

Eso hará que el icono de la hamburguesa sea visible en pantallas más pequeñas. He utilizado !important para asegurarme de que no se reemplaza por ningún otro estilo de enlace presente en mi tema.

Ahora vamos a añadirle un estilo extra. Edita la media query para que tenga este aspecto:

Esto añade un color y un tamaño al icono y también sustituye cualquier estilo existente para los enlaces, con independencia del estado en el que se encuentren.

Así es como se verá ahora el icono de la hamburguesa en el móvil:

mobile site with no menu and a burger icon in the top right of the header

Este es el icono de la hamburguesa con los estilo aplicados. Ahora para el menú de navegación.

Aplicar estilo al menú de navegación

El propio menú de navegación necesita ser diseñado para dispositivos móviles. Dentro de tu media query, añade este CSS:

Estos son algunos aspectos clave de lo que hace ese código:

  • Cambia los colores y la posición del menú principal y alinea el texto a la izquierda.
  • Oculta la lista dentro del menú, de modo que cuando el usuario visite por primera vez el sitio desde el móvil, el menú no se muestre.
  • Cambia la flotación y los colores de los elementos de lista dentro de la misma.
  • Proporciona un posicionamiento relativo al menú y un posicionamiento absoluto a la lista, para que pueda ubicarse sobre el contenido de la página sin empujarlo hacia abajo.
  • Elimina cualquier elemento que aparezca después de los elementos de lista que estén en la versión para escritorio de mi tema.

Ten en cuenta que los ajustes que tengas que hacer en tu menú pueden ser distintos y dependerán de los estilos que tenga aplicados en la versión de escritorio. Lo más importante es ocultar el menú y modificar el posicionamiento.

Añadir JavaScript

Para que todo funcione, necesitamos añadir un poco de JavaScript. Esto hará que el menú se deslice hacia abajo cuando el usuario toque en el icono de hamburguesa.

Añade un nuevo archivo llamado burger-menu.js a tu tema (me gusta poner el mío dentro de una carpeta para los scripts).

Añade este script en él:

Este script deslizará el ul situado dentro del elemento .menu.main hacia abajo cuando el usuario haga clic sobre el elemento .toggle-nav (es decir, en el icono de hamburguesa). Guarda el archivo y ciérralo.

Pero no funcionará a menos que pongas en cola el script. Abre el archivo functions.php de tu tema y añade esto:

Esto pondrá en cola el script, y hará que funcione. Guarda y cierra el archivo de las funciones.

Ahora, si visitas tu sitio en el móvil (o en un navegador de escritorio con el modo responsivo habilitado) y haces clic sobre esa hamburguesa, el menú se deslizará hacia abajo.

mobile website with menu on top of content

Está asentado sobre la parte superior del contenido, pero no lo empuja hacia abajo, y aparece con una agradable acción deslizante impulsada por JavaScript. Justo lo que queríamos.

Un menú de hamburguesa mejorará la experiencia de usuario de las visitas móviles

Un menú de navegación abarrotado, pensado principalmente para la versión de escritorio ocupará demasiado espacio en una pantalla pequeña y no permitirá a la gente leer el contenido por el que llegaron a tu sitio.

Pero tampoco quieres evitar que los visitantes móviles puedan acceder a la misma navegación que los visitantes de escritorio.

Al añadir un menú de hamburguesa como este, puedes aprovechar lo mejor de ambos mundos: un diseño móvil limpio que da acceso a la misma navegación que la versión para escritorio.

Otros artículos sobre menús de WordPress

Para obtener más información sobre los menús de WordPress, echa un vistazo a algunas de nuestras otras publicaciones:

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.