登录时用用户名替换菜单项文本

时间:2018-01-01 18:01:22

标签: wordpress custom-wordpress-pages

我正在尝试在用户成功登录后用名称替换Wordpress菜单项文本(Login)。

我有一个带有{display_name}的菜单项作为导航标签。

内部functions.php我到目前为止得到了以下内容。

function give_profile_name(){
    $user=wp_get_current_user();
    $name=$user->user_firstname; 
    return $name;
}
add_shortcode('profile_name', 'give_profile_name');
add_filter( 'wp_nav_menu_objects', 'my_dynamic_menu_items' );
function my_dynamic_menu_items( $menu_items ) {
    foreach ( $menu_items as $menu_item ) {
        if ( '#name_a#'==$menu_item->title ) {
            global $shortcode_tags;
            if ( isset( $shortcode_tags['profile_name'] ) ) {
                // Or do_shortcode(), if you must.
                $menu_item->title = call_user_func( $shortcode_tags['profile_name'] );
            }    
        }
    }

    return $menu_items;
}

用户登录后,菜单会正确显示用户名,但一旦退出,菜单仍会在屏幕上显示{display_name}。如何将其更改为“登录”等文本?

1 个答案:

答案 0 :(得分:0)

使用is_user_logged_in()来定义用户是否已登录:

floor(N/K) + 1