Quizás una de las cuestiones más demandadas en sitios web profesionales que quieren ofrecer una experiencia diferente a los usuarios registrados es poder ocultar o mostrar menús según el perfil de usuario.
Afortunadamente esto es muy fácil de lograr, y tenemos varios plugins que hacen de esta tarea algo realmente trivial, además de muy útil.
- Nave menu roles: Permite decidir qué perfiles de usuario verán o no verán cada uno de los elementos de los menús que añadas.
- if menu: Otro gran plugin, y también muy fácil de utilizar, para ocultar menús a los perfiles de usuario que definas en los ajustes de cada elemento de menú.
- Menus items visibility control: También permite lo mismo que los anteriores pero en este caso de manera menos sencilla pero quizás más flexible, pues añade a los ajustes de cada elemento de menú una caja donde introducir la función condicional que queramos aplicar.
- Custom menu filter plugin: Otro plugin más para ocultar elementos de menú usando funciones de WordPress, algo más antiguo que los anteriores.
- Sin plugin también puedes ocultar elementos de menú. En este caso primero creas una nueva clase CSS en la hoja de estilos, así:
#nav li.menu-registrados { display: none; } body.logged-in #nav li.menu-registrados { display: list-item; }
A continuación, al añadir un nuevo elemento de menú, en sus ajustes puedes especificar una clase CSS si antes has activado que se vea esta opción en los ajustes de pantalla de la ventana de gestión de menús (en Apariencia -> Menús), así que indicas la que has creado a los elementos que quieras que solo se muestren a usuarios registrados. Es simple pero efectivo, y sin plugins.
Añadir clases CSS a ajustes de menús Clase CSS para ocultar menús
Como ves por opciones que no quede, es sencillo y una funcionalidad muy interesante para usos de WordPress como portal con distinta oferta según el tipo de usuario, animando de este modo al registro.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
adblock me bloqueo 13 publicidades ^^
Es súper útil esto!
Me alegro 🙂
hay alguna manera de mostrar ciertos contenidos y menús dependiendo de la región?
Hola Fernando,
¿Sabes si hay alguna forma de ocultar contenidos en la librería multimedia de WordPress? concretando más… ¿es posible que un usuario sólo vea los archivos que él ha subido?
Gracias de antemano! Un saludo
Pues a priori no me suena, pero lo buscaré, me parece interesante
Esto, en ‘functions.php’
add_action(‘pre_get_posts’,’ml_restrict_media_library’);
function ml_restrict_media_library( $wp_query_obj ) {
global $current_user, $pagenow;
if( !is_a( $current_user, ‘WP_User’) )
return;
if( ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’ )
return;
if( !current_user_can(‘manage_media_library’) )
$wp_query_obj->set(‘author’, $current_user->ID );
return;
}
Excelente, cada vez wordpress esta mas facil…
Aunque ya tiene tiempo el post – y por cierto también hace tiempo que no escribo nada – déjame decirte que me has salvado la vida una vez más jajaja ¡gracias! como mencionaba en la entrada que publique hace tiempo trabajaba en una empresa donde manejábamos servidores Windows pero actualmente he iniciado mi propio negocio de diseño, desarrollo y alojamiento web con un compañero y ahora sí estoy trabajando por completo en WordPress (salvo excepciones contadas, claro esta, en las que necesiten plataformas como Moodle).
Estaba desarrollando una estructura para una pagina escolar y precisamente necesitaba ocultar ciertos elementos del menú para limitar el acceso, como el calendario de Eventos (que por cierto estoy utilizando el plugin EventOn, una maravilla de plugin déjame decir, es profesional pero vale sobradamente los 25$ que cuesta, recomendado 100%)