自定義 WordPress 後台工具列
在這節課中,我們將學習如何自定義 WordPress 後台工具列。工具列位於 WordPress 後台頁面的頂部,提供了各種快捷操作,如切換主題、管理評論、新建文章和頁面等。通過學習如何隱藏特定工具、添加自定義工具以及控制工具列的顯示,您可以為自己和其他用戶提供更簡潔、個性化的後台操作環境。
隱藏工具列上的快捷工具
有時,您可能希望隱藏工具列上的某些快捷工具,以簡化界面或防止某些功能的誤操作。這可以通過 add_action
函數綁定 wp_before_admin_bar_render
過濾器來實現。
- 操作說明:
- 打開您自定義的外掛 PHP 文件或主題的
functions.php
文件。 - 添加以下代碼來隱藏指定的工具列快捷工具。
- 打開您自定義的外掛 PHP 文件或主題的
- 範例代碼:
add_action('wp_before_admin_bar_render', 'hidden_admin_bar_item', 0); function hidden_admin_bar_item() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); // 隱藏 WordPress 圖標 $wp_admin_bar->remove_menu('new-content'); // 隱藏新增項目 $wp_admin_bar->remove_menu('comments'); // 隱藏訊息 $wp_admin_bar->remove_menu('site-name'); // 隱藏網站名稱 }
代碼解釋:
add_action('wp_before_admin_bar_render', 'hidden_admin_bar_item', 0);
:這行代碼將hidden_admin_bar_item
函數綁定到wp_before_admin_bar_render
過濾器上,確保在工具列渲染之前執行。remove_menu
方法用於隱藏指定的工具列項目,例如 WordPress 圖標、新增項目、留言等。
在工具列上添加自定義快捷工具
除了隱藏現有的工具列項目,您還可以通過 add_action
函數綁定 admin_bar_menu
過濾器來添加自定義的快捷工具。例如,您可以添加一個鏈接到特定網站或後台頁面的快捷方式。
- 操作說明:
- 在同一個 PHP 文件中,添加以下代碼來添加自定義的工具列快捷工具。
- 範例代碼:
function add_admin_bar_item($wp_admin_bar) { $args = array( 'id' => 'custom_link', // ID 用於識別這個項目 'title' => '我的自訂連結', // 顯示的文字 'href' => 'https://example.com', // 連結的目的地 'meta' => array('target' => '_blank') // 設定如何打開這個連結,例如在新的分頁中打開 ); $wp_admin_bar->add_node($args); } add_action('admin_bar_menu', 'add_admin_bar_item', 999);
代碼解釋:
add_action('admin_bar_menu', 'add_admin_bar_item', 999);
:這行代碼將add_admin_bar_item
函數綁定到admin_bar_menu
過濾器上,並在工具列的結尾處(優先級 999)添加自定義工具。add_node
方法用於添加一個新的工具列項目,id
用於識別該項目,title
是顯示的文字,href
是點擊後跳轉的 URL,meta
中可以設置一些附加屬性,如在新標籤頁中打開鏈接。
控制工具列的顯示權限
有時,您可能只希望某些特定角色的用戶(如管理員)能夠看到工具列。這可以通過 add_filter
函數綁定 show_admin_bar
過濾器來實現。
- 操作說明:
- 添加以下代碼來限制只有網站管理員可以看到工具列。
- 範例代碼:
add_filter('show_admin_bar', function($status) { return current_user_can('manage_options') ? $status : false; });
代碼解釋:
current_user_can('manage_options')
:這個函數檢查當前用戶是否具有管理網站選項的權限(通常是網站管理員)。- 如果用戶具有這個權限,工具列將顯示;否則,工具列將被隱藏。
在前台移除工具列
如果您希望在網站前台完全隱藏工具列,可以使用 add_filter
函數來移除它。
- 操作說明:
- 添加以下代碼來隱藏前台的工具列。
- 範例代碼:
add_filter('show_admin_bar', '__return_false');
代碼解釋:
__return_false
是一個簡單的 WordPress 函數,返回false
,表示工具列在前台不會顯示。
常見的快捷工具對應位置
在添加或隱藏工具列項目時,了解每個工具的位置優先級是很有幫助的。以下是常見項目的對應位置:
- WordPress 圖標:10
- 網站名稱:20
- 更新資訊:40
- 留言:60
- 新增項目:70
這些優先級可以幫助您確保新添加的項目在適當的位置顯示,或者正確隱藏不需要的項目。