Mostrar el nombre de usuario en el menú de WordPress

En el panel de administración de WordPress dirígete a Apariencia – Menús y elige el menú donde quieres poner el nombre de usuario. El nuevo ítem de menú tendrá un marcador de posición que posteriormente será reemplazado (lo puedes ver en la captura de pantalla a continuación). 

Ejemplo: #profile_name#, #usuario#, #nombre#.


Puedes poner por ejemplo el elemento «Enlaces Personalizados» con la url de cerrar sesión. De tal modo el usuario cuando pulse en su nombre aparece la opción de cerrar la conexión con la web.

Código para interpretar el marcador del ítem de menú

Más adelante incluye el código en el archivo functions.php del tema hijo o del plugin de Snippets. Este es el código que tenemos que incluir:


add_filter( 'wp_nav_menu_objects', 'my_dynamic_menu_items' );

function my_dynamic_menu_items( $menu_items ) {
	$final_menu = [];
    foreach ( $menu_items as $menu_item ) {
        if ( '#profile_name#' == $menu_item->title ) {
        	 $user=wp_get_current_user();
        	if ( $user->ID ){
        		 $menu_item->title = $user->user_firstname;
        		 $final_menu[] = $menu_item;
            }
        } else {
        	$final_menu[] = $menu_item;
        }
    }
    return $final_menu;
}

En caso de que esté utilizando tu propio marcador de posición, recuerda reemplazar #profile_name# con el nombre personalizado que elijas en el código de arriba.
En vez de user_firstname - se puede usar - display_name - para mostrar nombre de usuario en vez de Primer Nombre
Tal como te he comentado al inicio, puedes agregar este código en el archivo functions.php de tu child theme o usando algún plugin de snippets.

 
 Si quieres mostrar el gravatar del usuario podrías usar get_avatar(), el código anterior quedaría como:


add_filter( 'wp_nav_menu_objects', 'my_dynamic_menu_items' );

function my_dynamic_menu_items( $menu_items ) {
	$final_menu = [];
    foreach ( $menu_items as $menu_item ) {
        if ( '#profile_name#' == $menu_item->title ) {
        	 $user=wp_get_current_user();
        	if ( $user->ID ){
        		 $avatar = get_avatar( $user->ID, 16 );
        		 $menu_item->title = $avatar." ".$user->user_firstname;
        		 $final_menu[] = $menu_item;
            }
        } else {
        	$final_menu[] = $menu_item;
        }
    }
    return $final_menu;
}

 

Resultado final

Como ves es bastante fácil incluir el nombre del usuario que ha iniciado sesión en nuestro menú de WordPress, dando a la persona que está conectado a la web la facilidad de saber que está vinculado. Al final obtendremos algo similar a lo que se muestra en la siguiente imagen:


FUENTE: 

Mostrar el nombre de usuario en el menú de WordPress - DecodeCMS

--

No hay comentarios:

Publicar un comentario

Déjame Tu Comentario Aquí