Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo mostrar menús diferentes a los usuarios registrados en WordPress

¿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. 💡

Mostrar diferentes menús de navegación a usuarios conectados y no conectados en WordPress

¿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ó.

Menú diferente para usuarios conectados

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.

Menú principal

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ú’.

Menú de usuario conectado

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:

¿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’.

Administrar ubicaciones del menú

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.

Seleccionar menú de usuario conectado

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.

Seleccionar usuario conectado como condición

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.

Menú diferente para usuarios conectados

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.

Botón Agregar fragmento en WPCode

Esto abrirá la galería de fragmentos de código de WPCode.

Desde aquí, puedes hacer clic en el botón ‘+ Agregar fragmento personalizado’.

Botón Añadir fragmento de código en WPCode

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’.

Agregar título del fragmento y elegir tipo de código en WPCode

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:

El fragmento de HTML personalizado en la vista previa de código 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.

Encontrar el ID del menú de navegación

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:

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.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

101 CommentsLeave a Reply

  1. 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.

  2. 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?

  3. 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.

  4. 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

  5. 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?

  6. 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?

  7. esta función anterior establece el menú secundario, ¿todo lo que quiero es configurar solo el menú del encabezado?
    ¿cómo hacer eso

  8. 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;
    });

  9. ———————————————————–
    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

    • 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.

  10. 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).

    • 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.

  11. ¡¡¡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!!

  12. 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’ );

  13. 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

    • 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

  14. 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’ );

    • 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,

  15. 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.

  16. 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?

    • ¿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’;

      ?

    • 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

  17. 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.

  18. 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

  19. Solo cambiando un cierto menú se puede lograr cambiando $args[‘menu’] = ‘logged-in’;
    por $args[‘secondary-menu’] = ‘logged-in’; por ejemplo. ¡Debería funcionar!

    • 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.

      • 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

  20. ¡Hurra! Finalmente lo encontré, nunca se me ocurrió que esta simple función facilitaría tanto mi trabajo.
    ¡Gracias, muchachos!

  21. 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

  22. 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?

  23. 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.

  24. 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

  25. ¿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?

    • 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, ¿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á

  26. ¡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!

  27. 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

    • 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

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.