如何改造 WordPress 管理後台子選單
在 WordPress 管理後台中,子選單位於主選單下,用於提供更細化的管理和設置選項。有時,您可能希望隱藏某些不需要的子選單項目,或者添加自定義的子選單項目來擴展功能。在這節課中,我們將學習如何通過 admin_menu
過濾器來移除和添加後台子選單項目。
移除管理後台子選單項目
如果某些子選單項目對您的網站管理來說不必要,或者您希望簡化後台界面,可以使用 remove_submenu_page
函數來移除這些項目。
- 操作說明:
- 打開您自定義的外掛 PHP 文件或主題的
functions.php
文件。 - 添加以下代碼來移除特定的子選單項目。
- 打開您自定義的外掛 PHP 文件或主題的
- 範例代碼:
// 移除管理後台子選單項目 function remove_admin_submenu_items() { remove_submenu_page('options-general.php', 'options-permalink.php'); // 移除 "設置" 選單中的 "永久連結" 子選單 } add_action('admin_menu', 'remove_admin_submenu_items', 999);
代碼解釋:
remove_submenu_page('options-general.php', 'options-permalink.php');
:這行代碼指定要移除的子選單項目,其中'options-general.php'
是父選單(設置)的 slug,'options-permalink.php'
是要移除的子選單項目的 slug。add_action('admin_menu', 'remove_admin_submenu_items', 999);
:這行代碼將remove_admin_submenu_items
函數綁定到admin_menu
過濾器,以確保在後台選單生成之前執行此操作。
添加自定義的管理後台子選單項目
除了移除現有的子選單項目,您還可以使用 add_submenu_page
函數來添加自定義的子選單。這允許您將自定義的頁面或功能添加到現有的主選單項目中。
- 操作說明:
- 在同一個 PHP 文件中,添加以下代碼來創建自定義的子選單項目。
- 範例代碼:
// 添加自定義的管理後台子選單項目 function add_admin_submenu_items() { add_submenu_page( 'custom_menu_slug', // 父選單 slug '自訂子選單標題', // 頁面標題 '自訂子選單', // 選單標題 'manage_options', // 必要的能力(capability) 'custom_submenu_slug', // 子選單頁面 slug 'custom_submenu_page_content'// 用於顯示內容的回調函數 ); } add_action('admin_menu', 'add_admin_submenu_items'); // 自定義子選單頁面的內容 function custom_submenu_page_content() { echo '<h1>這是自訂子選單的內容</h1>'; }
代碼解釋:
add_submenu_page
函數用於創建新的子選單項目,將其附加到指定的父選單下。- 參數詳解:
'custom_menu_slug'
:父選單的 slug,決定這個子選單項目將顯示在哪個主選單下。'自訂子選單標題'
:在瀏覽器標籤中顯示的頁面標題。'自訂子選單'
:子選單項目在後台顯示的名稱。'manage_options'
:訪問這個子選單所需的能力(僅有管理員可以訪問)。'custom_submenu_slug'
:自定義子選單頁面的 slug,用於 URL。'custom_submenu_page_content'
:當用戶點擊子選單項目時,調用的函數來顯示頁面內容。
測試您的改動
完成上述代碼編寫後,請保存文件並登錄到 WordPress 後台以檢查結果。您應該會看到指定的子選單項目已經被移除,並且自定義的子選單項目已經顯示在指定的主選單下。
擴展練習
- 添加多個子選單:嘗試為同一個主選單項目添加多個子選單,以進一步擴展後台功能。
- 條件移除子選單項目:基於用戶角色或權限,條件性地移除某些子選單項目,以提供不同層級的後台訪問控制。