2016-08-30 64 views
0

我最近更改了主机。之后我看到一个错误。我使用Displaying Logged-In User Name in Wordpress Menu 的一段代码来显示用户名,而不是“个人资料页”。它在前一台主机上运行良好。在我复制了所有内容和数据之后,我在菜单栏上看到了这个错误。用户在登录时看到此信息,请提出补救措施。更改主机后,give_profile_name()错误的参数1缺失

enter image description here

下面是我usign的代码。它与我发布的stackoverflow链接上给出的完全相同。我已经创建了一个页面#profile_name#,正如链接中所述。

function give_profile_name($atts){ 
$user=wp_get_current_user(); 
$name=$user->user_firstname .' '. $user->user_lastname ; 
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; 
} 
+0

那么,但暂时,可以有一个解决方案! –

回答

0

不知道,如果你还是一个答案,但我想既然我跑与相同的代码片断同样的错误,而试图以一个用户的名字添加到导航菜单我无论如何都会回复。我注意到它仍在工作,尽管出现了错误,所以在玩过之后,我只是从该函数中删除了$atts。所以第一块代码是:

function give_profile_name(){ 
$user=wp_get_current_user(); 
$name=$user->user_firstname .' '. $user->user_lastname ; 
return $name; 
}