¿Alguna vez te has dado cuenta de lo confuso que puede ser para los visitantes de tu sitio de WordPress cuando han iniciado sesión pero aún ven botones de 'Iniciar sesión' o 'Registrarse' por todas partes? ¿O tal vez tus miembros tienen dificultades para encontrar el panel de su cuenta porque está enterrado en el menú?
Estas pequeñas frustraciones pueden hacer que incluso tus usuarios más leales se sientan como extraños en tu propio sitio web.
Y un menú personalizado puede marcar la diferencia. Mostrar a los usuarios que han iniciado sesión opciones como "Mi cuenta" o "Cerrar sesión" en lugar de enlaces genéricos hace que tu sitio se sienta más acogedor y profesional.
¿La buena noticia? Crear menús dinámicos en WordPress es más fácil de lo que piensas.
En esta guía, te mostraremos dos métodos sencillos para mostrar diferentes menús a los usuarios que han iniciado sesión, sin importar tu nivel de habilidad. 💡

¿Por qué mostrar diferentes menús a los usuarios que han iniciado sesión en WordPress?
Cambiar diferentes áreas de tu sitio web de WordPress según tus visitantes y su actividad hace que tu sitio se sienta personalizado para cada usuario.
Este contenido personalizado te ayuda a mejorar la experiencia del usuario en tu sitio web de WordPress.
Ahora, si tienes un sitio web donde los usuarios no necesitan registrarse o iniciar sesión, entonces probablemente puedas usar los mismos menús de navegación en todo tu sitio web. Sin embargo, otros sitios web pueden beneficiarse enormemente de mostrar menús personalizados a los usuarios que han iniciado sesión.
Por ejemplo, sitios web como una tienda en línea, una plataforma de aprendizaje en línea o una comunidad de sitio de membresía de WordPress pueden beneficiarse de menús de navegación personalizados.
Un menú de navegación personalizado para usuarios registrados les ayuda a encontrar más fácilmente las cosas para las que se inscribieron.
Por ejemplo, un usuario en una tienda en línea puede administrar su cuenta, o un miembro de una comunidad de pago puede renovar fácilmente su suscripción o ver los cursos en línea exclusivos que compró.

Por defecto, WordPress te permite crear tantos menús de navegación como quieras. Sin embargo, solo puedes elegir mostrar un menú en una ubicación particular de tu tema de WordPress.
Antes de configurar menús para usuarios registrados, primero deberás crear dos menús de navegación separados. Un menú será para usuarios registrados y el otro para usuarios no registrados. Empecemos.
⚠️ ¡Solo una nota rápida! Los métodos que compartimos están diseñados para personas que usan temas clásicos de WordPress. Si estás usando un tema de bloques con funciones de Edición Completa del Sitio (FSE) de WordPress 5.8 en adelante, este método podría no funcionar.
Creación de menús para usuarios registrados y no registrados en WordPress
Para crear menús separados para los dos tipos de usuarios, deberás dirigirte a la página Apariencia » Menús en el panel de WordPress.
Si ya tienes un menú de navegación que usas en tu sitio web para todos los usuarios, entonces este puede ser tu menú predeterminado.

Después de eso, puedes hacer clic en el enlace ‘crear un nuevo menú’ para crear un nuevo menú personalizado para tus usuarios registrados.
Aquí, procede a agregar los elementos del menú que deseas mostrar a los usuarios registrados o que han iniciado sesión. Por ejemplo, podrías querer agregar un enlace de cierre de sesión a tu menú.
En el lado izquierdo de la pantalla, puedes ver una lista de las páginas de tu sitio web. Simplemente marca la casilla junto a cualquier página que desees agregar a tu menú y haz clic en el botón ‘Agregar al menú’.

También puedes arrastrar y soltar los elementos del menú en el lado derecho de la pantalla para reorganizarlos.
Más abajo en la página, puedes elegir una ubicación para mostrar tu menú. Pero no necesitas asignar una ubicación a este menú ahora. Lo haremos más adelante en el artículo.
No olvides hacer clic en el botón ‘Guardar menú’ para almacenar tus cambios.
Para más detalles sobre cómo crear menús, consulta nuestra guía para principiantes sobre menús de navegación de WordPress.
Ahora, estás listo para mostrar diferentes menús a los usuarios que han iniciado sesión. Aquí tienes un resumen rápido de todos los métodos que cubriremos en esta guía:
- Método 1. Mostrar diferentes menús a los usuarios que han iniciado sesión en WordPress usando un plugin
- Método 2. Seleccionar manualmente el menú para usuarios que han iniciado sesión en WordPress usando código
- Consejo extra: Más casos de uso de lógica condicional en menús de WordPress
- Preguntas frecuentes: Mostrar diferentes menús a los usuarios que han iniciado sesión en WordPress
- Recursos adicionales: Roles de usuario de WordPress y navegación del sitio
¿Listo para crear una experiencia más personalizada? ¡Vamos a empezar! 🌟
Método 1. Mostrar diferentes menús a los usuarios que han iniciado sesión en WordPress usando un plugin
La forma más fácil de mostrar diferentes menús a los usuarios que han iniciado sesión es usar el plugin Conditional Menus. Así que, primero vamos a instalarlo y activarlo.
Para más detalles, puedes ver nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
Tras la activación, deberás navegar a Apariencia » Menús desde tu panel de WordPress. Luego, cambia a la pestaña ‘Administrar ubicaciones’.
Desde aquí, verás la lista de ubicaciones de menú disponibles definidas en tu tema de WordPress y los menús que se están mostrando actualmente.
Por ejemplo, nuestra ubicación ‘Menú principal’ actualmente muestra un ‘Menú principal’.

Ahora, necesitamos indicarle al plugin que muestre un menú diferente cuando se cumpla una condición específica.
Para hacer eso, haz clic en el enlace ‘+ Menú condicional’. Luego, puedes seleccionar el menú de navegación que deseas mostrar a los usuarios que han iniciado sesión desde el menú desplegable.

A continuación, querrás hacer clic en el enlace ‘+ Condiciones’.
Esto abrirá una ventana emergente donde verás una gran cantidad de condiciones para elegir.

Simplemente marca la casilla junto a la opción ‘Usuario conectado’ y luego haz clic en el botón ‘Guardar’.
Ahora puedes visitar tu sitio web para ver el menú de usuario conectado en acción. También puedes cerrar sesión en tu administrador de WordPress para ver el menú de navegación que se mostrará a todos los demás usuarios.

Método 2. Seleccionar manualmente el menú para usuarios que han iniciado sesión en WordPress usando código
Este método requiere que agregues código a tu sitio web de WordPress. Si no has hecho esto antes, consulta nuestra guía sobre cómo copiar y pegar fragmentos de código en WordPress.
En general, los blogs te dirán que necesitas agregar un fragmento de código al archivo functions.php de tu tema o a un plugin específico del sitio. Sin embargo, no recomendamos este método porque puede causar problemas con tu sitio web.
En su lugar, puedes usar el plugin WPCode.
WPCode te permite agregar fragmentos de código personalizados a tu sitio sin editar los archivos del tema directamente. También ayuda a administrar estos fragmentos y asegura que se ejecuten de forma segura, minimizando el riesgo de que tu sitio se rompa.
ℹ️ Nota: En todas nuestras marcas asociadas, WPCode ha sido nuestra herramienta principal para agregar fragmentos personalizados para extender la funcionalidad de cada sitio. Si tienes curiosidad por saber más, puedes leer nuestra reseña completa de WPCode.
Para empezar, instalemos el plugin WPCode. Puedes usar la versión gratuita de WPCode, ya que tiene todas las funciones que necesitas para mostrar diferentes menús a los usuarios que han iniciado sesión.
Pero si te gustaría tener acceso a funciones avanzadas como el historial de revisiones de código y la programación de la publicación de fragmentos, considera actualizar a WPCode Pro.
Una vez instalado, querrás navegar a Fragmentos de código » + Agregar fragmentos.

Esto abrirá la galería de fragmentos de código de WPCode.
Desde aquí, puedes hacer clic en el botón ‘+ Agregar fragmento personalizado’.

Luego llegarás al editor de texto de WPCode.
El siguiente paso es agregar un título a tu fragmento de código y elegir ‘Fragmento HTML’ en el menú desplegable ‘Tipo de código’.

Una vez hecho esto, simplemente copia y pega el siguiente código en el campo ‘Vista previa del código’:
function my_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
// Logged in menu to display
$args['menu'] = 43;
} else {
// Non-logged-in menu to display
$args['menu'] = 35;
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
Así es como podría verse en tu editor de WPCode:

Asegúrate de reemplazar 43 y 35 con los IDs de los menús de navegación que creaste anteriormente.
Puedes encontrar el ID de un menú de navegación seleccionándolo en la página ‘Menús’. Verás el número de ID del menú en la barra de direcciones de tu navegador.

Una vez que te asegures de que todos los detalles son correctos, haz clic en el botón azul ‘Guardar fragmento’.
¡Y eso es todo!
Consejo extra: Más casos de uso de lógica condicional en menús de WordPress
Cuando se trata de navegación, la lógica condicional puede hacer más que mostrar diferentes menús a los usuarios que han iniciado sesión. Aquí tienes algunos ejemplos rápidos:
- Mostrar diferentes menús según el rol del usuario: Puedes mostrar un menú diferente para administradores en comparación con colaboradores. Por ejemplo, muestra opciones exclusivas para administradores como configuración del sitio o gestión de usuarios para los administradores, mientras ofreces enlaces de navegación generales a colaboradores u otros roles de usuario.
- Mostrar diferentes menús en diferentes páginas: ¿Quieres un menú único en tu página de blog o en las páginas de productos? La lógica condicional te permite crear menús específicos para cada uno, manteniendo la navegación adaptada al contenido.
- Ocultar la navegación en páginas de destino: Las páginas de destino funcionan mejor sin distracciones. Usa la lógica condicional para ocultar tu menú de navegación y enfocar la atención en tu llamada a la acción, como un formulario de registro o una oferta de producto.
Para obtener más información, puedes consultar nuestra guía sobre cómo agregar lógica condicional a los menús en WordPress.
Preguntas frecuentes: Mostrar diferentes menús a los usuarios que han iniciado sesión en WordPress
¿Todavía tienes preguntas sobre cómo mostrar diferentes menús a los usuarios en WordPress? Aquí tienes algunas respuestas rápidas para ayudarte:
¿Puedo mostrar diferentes menús según los roles de usuario?
Absolutamente. Puedes mostrar menús únicos para Administradores, Editores o cualquier otro rol de usuario personalizado en tu sitio. El plugin Conditional Menus proporciona una opción sencilla para configurarlo, lo cual es perfecto para adaptar la navegación a los miembros de tu equipo.
¿Es mejor usar un plugin o agregar código manualmente?
Para la mayoría de los usuarios, recomendamos usar un plugin como Conditional Menus o WPCode. Estas herramientas facilitan la visualización de diferentes menús sin tocar los archivos de tu tema.
WPCode es especialmente útil si prefieres la flexibilidad de usar código. Te permite agregar fragmentos de PHP personalizados de forma segura y administrarlos desde tu panel de WordPress, sin necesidad de editar functions.php directamente.
La codificación manual sigue siendo una buena opción para los desarrolladores, pero para todos los demás, un plugin es la opción más segura y amigable para principiantes.
¿Puedo ocultar el menú de navegación en ciertas páginas?
Sí, puedes usar la misma lógica condicional para ocultar tu menú de navegación en páginas específicas. Esta es una estrategia popular para páginas de destino, ya que elimina las distracciones y mantiene al visitante enfocado en tu llamado a la acción.
Recursos adicionales: Roles de usuario de WordPress y navegación del sitio
Esperamos que este artículo te haya ayudado a aprender cómo mostrar fácilmente diferentes menús de navegación a los usuarios que han iniciado sesión en WordPress. A continuación, también puedes consultar nuestras guías sobre:
- Cómo permitir el registro de usuarios en tu sitio de WordPress
- Cómo permitir que los usuarios inviten a sus amigos a registrarse en WordPress
- Cómo moderar nuevos registros de usuarios en WordPress
- Cómo evitar que WordPress te olvide con la opción 'Recuérdame'
- Cómo saludar a cada usuario con un mensaje de bienvenida personalizado en WordPress
- Cómo restringir tus formularios de WordPress solo a usuarios registrados
- Cómo estilizar menús de navegación de WordPress
- Los mejores plugins de membresía de WordPress
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Jan-Paul Kleijn
Primero pensé en un plugin. Tengo que dejar de pensar así.
Luego vi tu publicación y me convencí.
Gracias por publicar esto, me ayudaste muy bien.
Phil
Muchas gracias por eso. Funciona perfectamente.
Ariet
Hola,
¡Esto funciona totalmente!
Pero también me cambia el menú del pie de página... ¿hay alguna manera de que mi menú del pie de página se quede igual?
Tarron Acuff
Entonces, tengo 2 menús. Uno para el público y otro que me gustaría que los empleados vieran cuando iniciaran sesión. El menú de empleado reemplazaría al menú principal solo cuando un empleado haya iniciado sesión.
Aquí está lo que estoy usando actualmente en mi archivo functions.php
// Establecer el rol como una clase de cuerpo
function add_role_to_body( $classes ) {
$user = wp_get_current_user();
$user_roles = $user->roles; foreach( $user_roles as $role ) { $classes[] = ‘role-‘ . $role; }
return $classes;
}
add_filter( ‘body_class’, ‘add_role_to_body’ );
***Aquí está lo que agregué para CSS***
/* Primero oculta los elementos del menú para usuarios que no sean "empleado" */ #top-menu li.menu-for-employee { display: none; }
/* Muestra los elementos del menú para el usuario "empleado" */ .role-employee #top-menu li.menu-for-employee { display: initial; }
Cuando inicio sesión como empleado, ambos menús se muestran.
Gracias de antemano.
Wasim
No me funciona. Muestra el menú predeterminado después de agregar este código, incluso mi menú principal desapareció.
Joe
Hola a todos,
Un buen tutorial, pero me preguntaba si podrías usar el mismo enfoque para reemplazar un menú adaptable en un tamaño de pantalla determinado.
Tengo dos menús, pero preferiría tener solo un menú adaptable a 768 px reemplazando un menú por otro.
Gracias
Pet
Gran trabajo con tus guías. Estoy construyendo mi primer sitio de WordPress y encuentro tu sitio increíblemente útil para guiarme, gracias.
Realmente quería mostrar menús diferentes para usuarios conectados (como 'editar perfil') y para usuarios desconectados, y eso me trajo aquí. El código que compartiste funciona bien para mí. Ahora tengo dos menús que se ven bien. Sin embargo, la última parte del código, la cadena add_filter, creo que me está complicando un poco. Ahora, otro menú se muestra debajo del widget de la barra lateral. El menú 'conectado'. Estoy usando el tema sydney y he intentado sin éxito eliminar este menú innecesario. ¿Alguna idea sobre cómo puedo hacer que no se muestre?
Soporte de WPBeginner
Hola Pet,
Por favor, revisa la página Apariencia » Widgets para ver si tienes un menú personalizado agregado como un widget ahí. Si está ahí, entonces puedes simplemente eliminar ese widget.
Administrador
Pet
What genius! It worked! Thanks for the wonderful tip!!
Jomcy Johny
Yo también tengo el mismo problema... Por favor, ayúdenme... pero no tengo widgets. ¡¡Gracias..!!
Alex Hammerschmied
Works like a charm…
Thanks for that.
Btw i love theses short tutorials
giovanna
Hola, ¿puedes ayudarme por favor? ¿Tengo otro problema, por favor? Necesito ocultar un menú para todos y permitir solo a los vendedores ver lo que tengo que hacer, ¿por favor? ¿Cuál es el código específico que debo usar, por favor?
ericlee
Cuando modificas functions.php de esta manera, ¿no se borrará cuando actualices tu próxima versión de WP?
Soporte de WPBeginner
Sí, se borrará cuando actualices tu tema. Para evitar esto, puedes crear un plugin específico del sitio.
Administrador
Ramona
¿Funcionará esto para una instalación de Buddypress? Gracias.
Nikhil Chaudhari
¿la función establece también el menú secundario? solo quiero establecer el menú principal. ¿cómo hago eso?
Nikhil Chaudhari
esta función anterior establece el menú secundario, ¿todo lo que quiero es configurar solo el menú del encabezado?
¿cómo hacer eso
Asfaha
Hola,
muchas gracias por esta solución, la he aplicado y funciona perfecto y me ahorró instalar un plugin más.
Shafaq
este es el código para reemplazar el menú existente por el menú del usuario conectado agregando la ubicación top-menu y con el menú loggedin no se necesita la declaración else con esto
add_filter( ‘wp_nav_menu_args’, function ( $args )
{
if( is_user_logged_in() && $args[‘theme_location’] === ‘top-menu’ ) {
$args[‘menu’] = ‘loggedin’;
}
return $args;
});
Ashraf Ali
———————————————————–
function my_wp_nav_menu_args( $args = ” ) {
if( is_user_logged_in() ) {
$args[‘menu’] = ‘logged-in’;
} else {
$args[‘menu’] = ‘logged-out’;
}
return $args;
}
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
———————————————————–
Ahora, ¿cómo hago que funcione con
—————————————————
———————————————————————————————————————-
Por favor, avise
Iqbal Mahmud
Si quiero ocultar una página de un usuario que no ha iniciado sesión de un menú individual, ¿qué tengo que hacer?
Kasper
Puedes bloquear páginas para ocultarlas de usuarios que no han iniciado sesión. Hay varios plugins que hacen esto muy fácil. Users Ultra me viene a la mente.
Zev
Todo funcionó perfectamente.
Sin embargo, todavía tengo el problema de un menú principal repetido en la sección del menú de navegación secundario que no parece poder eliminar (no tengo configurado un menú secundario).
Vince
Estoy teniendo exactamente el mismo problema. El cambio se refleja en la ubicación del menú secundario de la nada y yo tampoco tengo configurado un menú secundario. :/ Por favor, aconseja cómo lidiar con esto.
Gracias de antemano.
Chiranjeevi Vinodkumar
¡¡¡ESCUCHEN!!!
La mayoría de nosotros usamos temas.
Así que primero ve al archivo functions.php de tu tema.
Busca con 'navigation' como palabra clave.
En el caso del tema Shopkeeper...
==================================================================
register_nav_menus( array(
‘top-bar-navigation’ => __( ‘Navegación Barra Superior’, ‘shopkeeper’ ),
‘main-navigation’ => __( ‘Navegación Principal’, ‘shopkeeper’ ),
‘footer-navigation’ => __( ‘Navegación Pie de Página’, ‘shopkeeper’ ),
===================================================================
Así es como se ve... así que elige el que es principal. En mi caso, es "Navegación de la barra superior", por lo tanto, usé "top-bar-navigation".
¡¡¡Usé el siguiente código y funcionó de maravilla!!!
Esta es mi forma de agradecer al autor.
¡¡Buen día!!
Ann Novakowski
Esto es lo que me funcionó con WP. Usé esto para crear un menú principal específico para usuarios de Buddypress registrados. NO afectará mi menú del pie de página NI mi menú de redes sociales para ningún visitante, por lo que todos verán los mismos menús secundarios independientemente de si han iniciado sesión o no. Esto se basa en todos los comentarios anteriores (gracias a Fransiska!).
Agregué lo siguiente al archivo functions.php de mi Child Theme:
// CAMBIAR MENÚ PRINCIPAL =SOLO= SI EL MIEMBRO HA INICIADO SESIÓN
function my_wp_nav_menu_args( $args = "" ) { if ($args['theme_location'] == 'primary') { if( is_user_logged_in()) { $args['menu'] = 'logged-in'; }else{ $args['menu'] = 'logged-out'; } } return $args; }
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Oliver
¡No sé qué pasó con mi comentario, pero –> ” <– estos son correctos!
fidel toro
¡¡Gracias!! Me ayudaste mucho
Matthias Campbell
Hola,
Agregué este código (probablemente mal) en mi functions.php dentro de mi tema en el editor de WordPress y ahora tengo un error constante de servidor 500. Incluso después de eliminar el código.
Antes de esto, intenté crear un plugin específico para el sitio pero no funcionó. ¿Podrías decirme si el fragmento requiere un corchete de apertura y cierre?
Si es así, ¿cómo lo hago?
Mi host no puede ayudarme ahora y me piden que pague a un programador para que me ayude por 50 euros por hora. Por favor, ayúdame. Es urgente.
Todavía estoy conectado a WordPress, pero haga clic en lo que haga, obtengo el error 500 con este error específico.
PHP Parse error: syntax error, unexpected ‘}’ in line 1194.
Esto se debe a que pegué el fragmento después de todo el texto en el archivo functions.php.
Luego eliminé el fragmento para ver si eso lo arreglaba, a través del editor y FTP, y todavía obtengo el error.
Espero su respuesta.
Saludos cordiales
Soporte de WPBeginner
Depende de dónde estés agregando el código. Si hay una etiqueta PHP de cierre antes, entonces necesitas agregar una etiqueta de inicio PHP como <?php
Si este código es lo último en el archivo functions, entonces no necesitas agregar una etiqueta de cierre.
Administrador
Hubert
Si tienes múltiples ubicaciones de menú y quieres aplicar menús diferentes para cada ubicación, puedes usar el código a continuación:
function my_wp_nav_menu_args( $args = '' ) {
// Ubicación del menú principal
if( ‘primary-main’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) {
$args[‘menu’] = ‘Primary-Logged-In’;
} else {
$args[‘menu’] = ‘Primary-Logged-Out’;
}
return $args;
}
// Ubicación del menú secundario
if( ‘secondary-menu’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) {
$args[‘menu’] = ‘Secondary-Logged-In’;
} else {
$args[‘menu’] = ‘Secondary-Logged-Out’;
}
return $args;
}
}
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Haji
Esto no funciona, ¿alguien sabe el código correcto si tienes 2 o más menús?
Ravikant
Perfecto, hermano. Funciona... ¡gran trabajo!
Leopold
¡Esto fue casi demasiado fácil!
Muchas gracias por el sencillo artículo.
De esta manera no tengo que instalar ningún plugin.
Gaurang
Creo que es mejor usar el plugin IF MENU. https://wordpress.org/plugins/if-menu/
Al crear dos menús separados de esta manera, el usuario tiene que crear/actualizar el menú dos veces.
Chris
Hola Gaurang,
Me da curiosidad saber por qué crees que usar el plugin es mejor que codificar el archivo functions.php. Hace tiempo me dijeron que tuviera cuidado con la cantidad de plugins que se usan realmente en un sitio de WordPress, y el código anterior parece lo suficientemente simple; menos el tener que monitorear cada vez que se actualiza tu tema....
Gracias,
Rub
Genial, ¿cómo puedo usarlo para mostrar el menú a un usuario registrado que tenga un rol específico?
Kit Johnson
Esto funcionó de manera muy simple y ordenada. No pensé que sería tan fácil. ¡Gracias!
Jason Sisson
Esto es genial, lo probé. Funciona. Pero también me gustaría redirigir por rol.
¿Es eso simple o mucho más difícil?
Ryan R. Bayne
Gracias. Trabajando con funciones de menú por primera vez.
Creando el plugin WTG Portal Manager que permitirá definir un portal muy rápidamente. Cada portal tendrá su propio menú. El plugin aclara la relación entre portal y menú, además de ofrecer otras opciones únicas.
veer2412
¿cómo puedo mostrar diferentes publicaciones a diferentes usuarios?
veer2412
gracias por la ayuda... pero ¿qué pasa si quiero mostrar diferentes publicaciones a diferentes usuarios en mi sitio? ¿hay alguna forma de hacerlo usando código?
Personal de WPBeginner
En Apariencia > Menús, necesitas elegir una ubicación para tu menú. Parece que hay dos áreas en tu sitio donde puedes agregar menús. Así que necesitas crear dos menús diferentes y luego asignarles una ubicación.
Heather Gile
¿Cuál sería el código revisado para esto, si hubiera una distinción de 'Primary' y 'Top'?
$args[‘primary-menu’] = ‘logged-in’;
$args[‘top-menu’] = ‘logged-in’;
else
$args[‘primary-menu’] = ‘logged-out’;
$args[‘top-menu’] = ‘logged-out’;
?
Kyle
Wordpress no me deja poner 2 menús en mi ubicación "encabezado superior". El código que proporcionaste funciona, pero cambió TODOS mis menús a los de conectado o desconectado, y no está mostrando mi menú de navegación normal
b2995
Tengo un menú superior y también un menú del sitio (debajo del logo). ¿Cómo cambiaría el código para cambiar solo ese menú superior? Actualmente, TODOS mis menús cambian.
Harry Slyman
You saved my day! thank you
Rob
¡OMG, esto me hizo reír de lo simple que fue... ¡gracias!
Melih
Ilustrativo y fácil, muchas gracias.
Rohit Gahlot
Working ..
Thanks a lot
Seth
Gracias por esto.
En la página de inicio, los nombres de los menús que tienen un submenú (un menú desplegable) no muestran el desplegable. Cuando voy a cualquier otra página que no sea mi página de inicio, esto no es un problema y se muestran todos los elementos del menú.
Este es el caso en la página de inicio tanto para los elementos de usuario conectado como de usuario desconectado. ¿Alguna idea de cómo solucionar esto? Gracias
http://www.viridianmgt.com/wordpress
Soporte de WPBeginner
Parece un problema del tema. Contacta con el soporte de tu tema.
Administrador
Wouter Bredenbeek
Solo cambiando un cierto menú se puede lograr cambiando $args[‘menu’] = ‘logged-in’;
por $args[‘secondary-menu’] = ‘logged-in’; por ejemplo. ¡Debería funcionar!
DANIEL
Ese código no funciona. He registrado un 'primary-menu' y un 'secondary-menu' y estoy probando la función proporcionada con tu cambio en los args, pero ningún menú cambia.
Lo solucioné usando este código:
function my_wp_nav_menu_args( $args = "" ) { if ($args[‘theme_location’] == ‘secondary-menu’) { if( is_user_logged_in()) { $args[‘menu’] = ‘logged-in’; }else{ $args[‘menu’] = ‘logged-out’; } }else{ $args[‘menu’] = ‘Principal’; } return $args; }
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
NOTA: 'Principal' es el nombre del menú estático principal.
Rory PQ
Tan cerca, tanto mi menú del pie de página como mi menú principal están cambiando. Estoy tratando de cambiar solo mi menú del pie de página. He probado muchas variaciones de este código pero nada. ¿Alguna idea de solución?
Cuando inspeccioné mi tema con Firebug, decía que mi pie de página es "id=footer-nav". ¿Debería usar este nombre en lugar de "secondary-menu"?
Muchas gracias
lemonthirst
¡Hurra! Finalmente lo encontré, nunca se me ocurrió que esta simple función facilitaría tanto mi trabajo.
¡Gracias, muchachos!
Grant
Cuando intento ingresar el código en el archivo functions.php, me da el siguiente error:
Parse error: syntax error, unexpected ’03’ (T_LNUMBER) in /home/grantkessler/public_html/wp-content/themes/GameNews/functions.php on line 201
Stevie Allison
Perfecto, justo lo que estaba buscando. Lo voy a probar ahora. Gracias
Stevie Allison
Funciona perfecto. Gracias
Alex
Muchas gracias por compartir el código, ¡pero realmente agrega este menú en todas las áreas! ¿Hay alguna forma de mostrarlo solo en un menú específico?
shanewaj rahman
Gracias,
Lo hicieron muy fácil.
zaman
Creé un plugin específico para el sitio y los menús funcionan bien, pero mi menú del pie de página también se cambió, no muestra el que seleccioné sino el de usuario conectado o desconectado.
Soporte de WPBeginner
Zaman, los menús de WordPress tienen ubicaciones asignadas. Asegúrate de estar usando un menú diferente para la ubicación del menú del pie de página.
Administrador
Grant
Hola, cuando intento poner el código, me arruina completamente el sitio y me da el mensaje de error:
function my_wp_nav_menu_args( $args = ” ) { if( is_user_logged_in() ) { $args[‘menu’] = ‘logged-in’; } else { $args[‘menu’] = ‘logged-out’; } return $args; } add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Advertencia: No se puede modificar la información de la cabecera – las cabeceras ya fueron enviadas por (la salida comenzó en /homepages/5/d156331781/htdocs/reviewthegame/wp-content/themes/Made-Theme/made/functions.php:12) en /homepages/5/d156331781/htdocs/reviewthegame/wp-includes/pluggable.php en la línea 899
joseph
¿Hay alguna forma de aplicar esto solo a un menú específico?
He intentado esto:
if( $args->theme_location == ‘primary-menu’ ) {
//Código aquí
}
pero no funciona. ¿Alguna idea de cómo lograr esto?
shanewaj rahman
Esto es lo que he hecho para superar el problema de dos menús.
He eliminado esa función y he puesto este código en header.php
donde estaba llamando a mi menú.
false,
‘menu_id’ => ‘nav’,
‘menu’ => ‘Registered’,
‘items_wrap’ => ‘%3$s’)
);
}
else
{
wp_nav_menu( array(‘container’ => false,
‘theme_location’ => ‘primary’,
‘menu_id’ => ‘nav’,
‘items_wrap’ => ‘%3$s’,
) );
}?>
Fransiska
Usar
if ($args[‘theme_location’] == ‘primary’)
en su lugar y funcionará
Gerald Tyler
Fransiska, ¿puedes explicar tu sugerencia con más detalle? Tengo varios submenús que estoy colocando en las barras laterales, y la solución en esta página hace que todos esos menús cortos ahora sean menús completos con todos los nombres del menú principal, ninguno de mis varios menús personalizados. Tu sugerencia suena como si pudiéramos aplicar este truco solo a la posición del menú principal, no a las barras laterales. ¿Tiene sentido? ¿Puedes proporcionar el código completo? No tengo suerte adivinando cómo encaja todo.
joseph
25 de oct. de 2013 a la 1:16 a. m.
¿Hay alguna forma de aplicar esto solo a un menú específico?
He intentado esto:
if( $args->theme_location == ‘primary-menu’ ) {
//Código aquí
}
pero no funciona. ¿Alguna idea de cómo lograr esto?
Fransiska
31 de ene. de 2014 a las 2:53 a. m.
Usar
if ($args[‘theme_location’] == ‘primary’)
en su lugar y funcionará
Jamie Mannion
¡Gran consejo, llegó en el momento perfecto en el desarrollo de mi sitio.
¡Funciona de maravilla! Creo que lo ampliaré para mostrar diferentes menús para diferentes user_meta.
¡Gracias por compartir!
karen
Hola, gracias por eso, muy útil. Sin embargo, todavía no estoy seguro de dónde poner el código?
(Después de crear los menús, agrega este código en el archivo functions.php de tu tema o en un plugin específico del sitio) – ¿dónde está el archivo functions.php?
Saludos
Soporte de WPBeginner
Ve a Apariencia » Editor verás el archivo functions.php en la lista de archivos a tu derecha. Sin embargo, si no ves un archivo functions.php allí, significa que estás usando un framework de tema o un tema hijo. En ese caso, necesitas crear un plugin específico para tu sitio y agregar este código dentro de ese plugin. Consulta nuestra guía sobre plugin específico del sitio.
Administrador
Cathy Earle
Gran consejo. Espero usarlo en un próximo diseño.