Descubre en este tutorial cómo mostrar un menú distinto dependiendo del rol de usuario en WordPress, mediante código.
A raíz del tutorial en el que expliqué cómo cargar menús distintos dependiendo de si el usuario estaba logueado o no una suscriptora me preguntó si podía conseguir lo mismo, pero dependiendo del rol de usuario de WordPress.
En este caso te voy a explicar cómo cargar distintos menús, lo cual es mucho más adecuado si el menú entre logueados y no logueados es muy diferente.
Vamos allá:
Snippet para mostrar un menú dependiendo del rol de usuario en WordPress
Antes de nada, debes crear dos menús, uno que sea el que quieres mostrar a los usuarios no logueados, y otros para los distintos roles de usuario.
Una vez lo tengas, añade el siguiente snippet al fichero functions.php de tu tema:
Para ver este código y los otros 2057 snippets de esta web,
identifícate o suscríbete aquí.
En este fragmento usas el filtro wp_nav_menu_args
en combinación con la etiqueta condicional is_user_logged_in
y la función current_user_can
para mostrar un menú u otro dependiendo de si el usuario está logueado o no y de sus capacidades.
En este caso, se usan 3 menús:
- «Usuario no logueado» -> Se mostrará a usuarios no logueados
- «Administradores» -> Se mostrará a administradores
- «Suscriptores» -> Se mostrará a los usuarios que no son administradores
Pero si quieres puedes utilizar otra nomenclatura. Si lo haces solo tendrás que sustituirlo en el snippet.
También puedes personalizarlo a tu gusto siguiendo la documentación de roles y capacidades de WordPress.
El código sirve tanto para child themes de Genesis como otros temas de WordPress.
Conclusiones
Ya ves qué fácil es cargar un menú específico dependiendo del rol de usuario en WordPress.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉