Display_name in menu

时间:2018-09-19 作者:Garrosh

我试图在菜单中显示用户的“display\\u name”。因此,我创建了一个名为“#profile\\u name#”的菜单项。

当我登录时,它会工作,但它会显示“Untitled“当我没有登录时。你知道为什么吗?

   function give_profile_name(){
        $user=wp_get_current_user();
        $name=$user->display_name; 
        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 ( \'#profile_name#\' == $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;
    }
谢谢你

1 个回复
SO网友:Castiblanco

您应该首先检查用户是否已登录,执行以下操作is_user_logged_in(), 如果是这样,您将获得用户名。

function give_profile_name(){
    if ( is_user_logged_in() ) {
        $user=wp_get_current_user();
        $name=$user->display_name; 
        return $name;
    } else {
        return "";
    }
}
您还可以更改if以检查是否返回短代码Untitled.

if ( isset( $shortcode_tags[\'profile_name\'] ) && $shortcode_tags[\'profile_name\'] != "Untitled")

结束

相关推荐

Appearance > Menus

我已经添加了自定义WordPress管理菜单和页面,但是,我希望它出现在“外观>菜单”部分,以便用户可以将其添加到其网站的菜单结构中。请让我知道如何做到这一点。以下是我在管理页面上添加的自定义菜单示例:现在,我想在管理部分的外观>菜单中添加这些自定义页面:如果有人能帮忙,我将不胜感激。幸亏damienoneill2001, 我可以在外观>菜单中添加分类项,但是,如何在示例中的Generes/Writer中添加内容?这就是我添加自定义管理菜单的方式,我希望它们中的每一个(产品、促销、产品类