Crear varios menús personalizados en WordPress
En este artículo vamos a ver como funcionan los menús WordPress y como podemos crear varios menús personalizados.
En este caso específico vamos a crear 2 menús para nuestro blog, uno será el menú principal que añadiremos en la cabecera del theme para que sea visible en todas las páginas y el otro un menú que añadiremos en el pie de página.
Lo primero que tendremos que hacer es tener claro cuantos y que menús queremos crear e ir al archivo functions.php de la plantilla y añadir algo como el siguiente código:
register_nav_menus( array( 'header-menu' => 'Header Menu', 'footer-menu' => 'Footer Menu' ));
En este caso usamos la función register_nav_menus que nos permite añadir múltiples menús. Podemos añadir tantos como queramos. En el ejemplo, tan solo queremos 2, uno para el header y otro para el footer.
Ahora tendríamos que editar el archivo header.php de la plantilla y añadir la siguiente llamada en el lugar que deseemos mostrar el menú.
<?php wp_nav_menu( array('menu' => 'Menu Header')); ?>
Y lo mismo tendríamos que hacer editando el archivo footer.php de la plantilla.
<?php wp_nav_menu( array('menu' => 'Menu Footer')); ?>
Ahora solo faltará entrar en la administración del WordPress y acceder al apartado de Apariencia – Menús, donde vamos a crear los 2 menús personalizados tal como deseemos.
Cuando tengas creados los menús, deberás fijarte en el bloque de Ubicación del tema donde podrás asociar o asignar un menú de los creados al menú de cabecera y el otro al menú del pie de página que permitirá el tema activo.

Hola, tengo un problema que no se como resolver. Estoy haciendo una web con una plantilla de pago y un diseño One Page. He creado un menú mediante anclas. Hasta aquí todo bien, ahora el problema es que quiero realizar la web a diferentes idiomas y no se si hace falta tener un plugin de traducción para ello al tratarse de una única página.
He creado varios menús para los diferentes idiomas, pero no se como integrarlos en su página correspondiente.
A ver si me podeis ayudar,
Muchas gracias, un saludo.
Creo que necesitarás instalar algún plugin de idiomas en tu WordPress
Hola, muchas gracias por el tutorial!
Tengo un problema a la hora de aplicar el estilo al menú, nos gustaría que el texto estuviera centrado a la página, y que el los apartados no vayas uno encima de otro, sino a los lados.
Muchas gracias!
Hola buenos días,
En ese caso tendrás que aplicar las reglas de estilo necesarias para conseguir tal efecto. Ofrecemos el servicio de hacer este tipo de trabajos, puedes enviarnos esta petición con todos los detalles necesarios por correo electrónico a blog@jose-aguilar.com
Saludos
Hola buenos dias, en mi caso quiero crear dos menus para el header y el tema me admite uno solo
primeramente gracias, esta excelente el tuto pero tengo una duda. sucede que cuando se agrega el menu quiero darle estilos personalizados con el css. pero sucede que se modifican otras secciones en la pagina, puedes ayudarnos explicando un poco mas en donde exactamente hay que colocar el código y como podemos ubicarlo donde lo queramos y colocarle estilos, de esa manera serìa un tuto completisimo. gracias de antemano. Saludos y exitos.
HOla, los menus debes posicionarlos allí donde quieras mostrarlos. Cada plantilla es distinta. Para ayudarte debería ver el código o entrar en vuestro hosting para revisar la plantilla.
Hola,
Quiero hacer dos menus diferentes. Uno para la home, con forma de hamburguesa y otro normal en las diferentes paginas. ¿Esto lo puedo hacer en wordpress? ¿como lo puedo hacer?
Hola, si claro, en wordpress se puede hacer todo lo que quieras. Lo que tienes que hacer es crear los menús en la administración y llamarlos en el lugar deseado de la plantilla. Después tendrás que hacer para cada uno la maquetación específica. Nada más. La explicación técnica de este tutorial te viene bien como base.
Hola una pregunta estoy intentando crear un theme con un doble menú pero no se que hago mal, ya que siempre me sale el mismo menú.
functions.php
function register_my_menus(){
register_nav_menus(array(
‘cabecera-menu’ => ‘Cabecera Menu’,
‘sticky-menu’ => ‘Sticky Menu’
));
}
add_action(‘init’,’register_my_menus’);
header.php
‘cabecera-menu’
)) ?>
y
‘sticky-menu’
)) ?>
Puede que te falte asociarlos al menú que toque en el apartado menus de la administración