2016-08-30 68 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; 
}