sinanisler logo

Personalizing WordPress Menus with Showing Username

This WordPress code snippet is designed to dynamically insert the current user’s display name into your website’s navigation menus. To make this work, you need to include a specific placeholder {{username}} in the titles of your menu items where you want the user’s name to appear. The code searches for this placeholder in each menu item and replaces it with the logged-in user’s display name.

If the user is not logged in or does not have a display name, the placeholder will be removed, leaving that part of the menu item title blank. This functionality is ideal for creating a more personalized and welcoming user experience, like greeting users by their name directly in the menu

function snn_display_username_in_menu( $menu_items ) {
    global $current_user;
    foreach ( $menu_items as $menu_item ) {
        if ( strpos( $menu_item->title, '{{username}}' ) !== false ) {
            // Get username, otherwise set it to blank.
            $username = $current_user->display_name ? $current_user->display_name : '';
            $menu_item->title = str_replace( '{{username}}', $username, $menu_item->title );
        }
    }
    return $menu_items;
}
add_filter( 'wp_nav_menu_objects', 'snn_display_username_in_menu' );

Leave the first comment