Download WordPress Themes, Happy Birthday Wishes
Home | Centro de Comunicación Virtual | ¿Cómo mostrar un menú diferente para usuarios registrados?

¿Cómo mostrar un menú diferente para usuarios registrados?

¿Te gustaría tener un menú exclusivo para usuarios registrados y otro menú para visitantes?, en este artículo aprenderás cómo mostrar un menú diferente para usuarios registrados o para un rol específico, de manera sencilla y sin usar plugins.

Resultado Final

Resultado final menús visitante y registrado

 

Generalidades

Primero tienes que tener dos menús creados, desde el backend de WordPress, en Apariencia > Menús, puedes crear ambos menús con sus respectivos ítems.

Menús creados de visitantes y para usuarios registrados

 
Es importante además asignar algún menú por defecto para la ubicación de menú que tiene tu theme, esta asignación de menú la cambiaremos posteriormente por código.

Pantalla de Gestionar ubicaciones menú

 

Como alternativa a tener dos menús, si sólo quieres mostrar/ocultar algunos ítems de menú, puedes evaluar usar un solo menú y restringir los ítems a través de un plugin como Nav Menu Roles

Seleccionar menú dinámicamente

De acuerdo a si el usuario es un usuario visitante o si es un usuario registrados, mostraremos uno u otro menú, para esto usaremos el siguiente código:


function dcms_menu_dinamico( $args ) {
if ( $args['theme_location'] == 'top'){
if ( is_user_logged_in() ) {
$args['menu'] = 'menu-registrados';
} else {
$args['menu'] = 'menu-visitantes';
}
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'dcms_menu_dinamico' );

En el código anterior:

  • Usamos un hook filtro llamado wp_nav_menu_args y hacemos referencia a la función dcms_menu_dinamico
  • Dentro de la función, usamos el argumento $args que es un array asociativo, podemos usar los valores que se documentan en el siguiente enlace
  • Usamos theme_location para comprobar la ubicación del menú con la que vamos a trabajar, en nuestro ejemplo es ‘top’, para aprender sobre ubicaciones de menús, puedes revisar el siguiente artículo
  • Dentro de la condicional, usamos la función is_user_logged_in() para detectar si un usuario esta o no conectado, y de acuerdo a eso cambiamos el menú
  • La asignación del menú puedes ser a través del ID, nombre del menú, o del slug, en el ejemplo hemos usado el slug.
Puedes agregar este código al final del archivo functions.php de tu child-theme, o usar algún plugin de snippets.
En WordPress el “slug” es la versión amigable de la URL de algún texto. Suele estar en minúsculas y contiene solo letras, números y guiones.

Menú por un rol específico de usuario

Siguiendo la misma lógica anterior, podemos mostrar un menú para un determinado rol de algún usuario (autor, editor, etc) con el siguiente código:


function dcms_menu_dinamico_autores( $args ) {
if ( $args['theme_location'] == 'top'){
if ( is_user_logged_in() ) {
$user = wp_get_current_user();
if ( in_array('author', $user->roles) ){
	 			$args['menu'] = 'menu-registrados';
}
}
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'dcms_menu_dinamico_autores' );

En el código anterior:

  • En este código he simplificado la condicional de usuario conectado, sin usar “else”, sólo se comprueba con is_user_logged_in() y se asume que tienes el menú de visitantes asignado por defecto.
  • La única diferencia es que ahora obtenemos el objeto usuario con wp_get_current_user()
  • Con el objeto usuario podemos saber los roles que tiene el usuario y comprobar el rol deseado, en nuestro caso el rol ‘author’

¿Aún con dudas?, en el siguiente video se explica los puntos tratados anteriormente.

Video explicativo

Visto en: Logo

Sobre Ae_L V.G. MS.

Master Degree in Distance Education – Elearning | Experto en Educación Virtual | Experto en Medios Digitales | Docente | WebDesing | Tecno Pedagogo | Diseñador Instruccional…

Comentar

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

x

Check Also

MOOCs para docentes que empiezan en septiembre

En Ecuador y en otros paises latinoamericanos, empieza el nuevo periodo lectivo 2017-2018 región sierra ...

INTEGRACIÓN DE LAS TICS A LA ENSEÑANZA

Es beneficioso tener un tiempo para leer aportes como éstos, pues, aunque son largos y ...

WhatsApp: Cómo obtener enlace para invitar a participar en grupos

WhatsApp: Cómo obtener enlace para invitar a participar en grupos Nuevas formas de compartir Parece ...

Descarga videos de facebook sin programas

Descarga videos de facebook sin programas 100% garantizado Facebook está cada vez más comprometido en ...

Aplicaciones para ayudarte a mejorar tu escritura en redes sociales

Aplicaciones para ayudarte a mejorar tu escritura en redes sociales Algunos errores pueden pasar bajo ...

Herramientas de marketing para 2017

Seamos honestos, si no tienes presencia online a día de hoy, todavía estás viviendo en ...

Cómo Saber quién te tiene agregado en WhatsApp

Ahora en WhatsApp también se puede averiguar quiénes nos tienen agregados y no están en ...

Catálogo colaborativo de herramientas TIC

Con el objetivo de facilitar el acceso a algunas herramientas de la WEB 2.0 de ...

Contenido restringido para usuarios usando shortcodes

En este artículo veremos cómo restringir parte del contenido de tus artículos, sin usar plugins, ...

APPs imprescindibles para docentes

Al pensar en todos aquellos docentes que, día a día, utilizan su smartphone o tablet ...