為何在 WordPress 中為登入用戶顯示不同的菜單?
根據訪客和他們的活動來更改 WordPress 網站的不同區域,可以使網站對每個用戶而言更加個性化。這有助於提升用戶體驗。
如果你的網站不需要用戶註冊或登入,那麼你可以跨網站使用相同的導航菜單。然而,其他網站會大大受益於向已登入用戶顯示自定義菜單。比如,網上商店、在線學習平台或 WordPress 會員社區網站都能從個性化導航菜單中受益。通過默認情況下,WordPress 允許你創建多個導航菜單,但你只能選擇在網站主題的某一位置顯示其中一個。
為已登入和未登入用戶創建不同的菜單
在設置登入用戶菜單之前,你首先需要創建兩個單獨的導航菜單。一個菜單供已登入用戶使用,另一個菜單供未登入用戶使用。讓我們開始吧。
請註意!我們分享的方法是為了使用 WordPress 經典主題的人設計的。如果你使用的是 WordPress 5.8 及以後版本帶有 Full Site Editing (FSE) 功能的主題,這些方法可能無法運行。
方法 1. 使用插件為登入用戶顯示不同菜單
最簡單的方法是使用 Conditional Menus 插件。所以,讓我們先安裝並激活它。激活後,請導航到 WordPress 後台的外觀 » 菜單頁面。然後切換到 ‘管理位置’ 標籤。從這裡你會看到主題定義的可用菜單位置和當前顯示的菜單。
例如,我們的 ‘主菜單’ 位置當前顯示一個 ‘主菜單’。
現在,我們需要告訴插件在符合某些條件時顯示不同的菜單。為此,我們單擊 ‘+ 條件菜單’ 鏈接。然後,從下拉菜單中選擇你希望顯示給已登入用戶的導航菜單。接下來,點擊 ‘+ 條件’ 鏈接,將彈出一個窗口,你會看到許多條件可供選擇。選擇 ‘用戶已登入’ 選項,然後點擊 ‘保存’ 按鈕。你現在可以訪問你的网站來查看已登入用戶菜單的效果。
方法 2. 使用代碼手動選擇登入用戶菜單
這種方法要求你向 WordPress 網站添加代碼。如果你之前從未這樣做過,請參閱我們的指南了解如何在 WordPress 中複製和粘貼代碼片段。通常情況下,你需要將代碼片段添加到主題的 functions.php 文件或站點專用插件中,但我們不推薦這種方法,因為它可能會導致網站問題。相反,你可以使用 WPCode 插件。
WPCode 讓你無需直接編輯主題文件即可向網站添加自定義代碼片段。它還有助於管理這些片段並確保它們安全執行,將破壞網站的風險降到最低。安裝後,請導航到代碼片段 » + 添加片段,這會打開 WPCode 的代碼片段庫。從這裡,你可以點擊 ‘+ 添加自定義片段’ 按鈕。
然後,你會進入 WPCode 的文本編輯器。下一步是為代碼片段添加標題,並從 ‘代碼類型’ 下拉菜單中選擇 ‘HTML 片段’。完成後,把以下代碼復制並粘貼到 ‘代碼預覽’ 欄位中:
function my_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
$args['menu'] = 43;
} else {
$args['menu'] = 35;
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
請確保用你先前創建的導航菜單的 ID 替換 43 和 35。使用 WPCode 保存代碼片段後,你就完成了。
希望這篇文章能幫助你學會在 WordPress 中為已登入用戶顯示不同的導航菜單。如需更多指南,例如如何允許用戶邀請朋友在 WordPress 中註冊和如何設計 WordPress 導航菜單,請訂閱我們的 YouTube 頻道或在 Twitter 和 Facebook 上關注我們。