2021-12-14

如何自訂 WordPress 後台選單

如何客製Wordpress後台選單

不論是個人或是接案,都會有自訂 WordPress 後台選單的需求,以個人來說,可能會想把預設的選單描述換成自己習慣的用語,例如:Pages(頁面),改叫網頁看比較順眼。接案的話情境更多了,通常是為了不讓業主被一大堆選單干擾(嚇到以為很難學😅),只留用得到的功能,畫面相對清爽。

接下來分享如何自訂後台選單,要達成的目標:

  1. 把 Posts(文章) 的預設描述改成 [我的文章]
  2. 當登入的角色是商店管理員,隱藏 Comments 及 Marketing 這兩個選單

Let's Go!

1. 使用外掛 Admin Menu Editor 來修改選單

首先我們可以使用 Admin Menu Editor 這個好用的免費外掛來修改選單描述或順序,進到該外掛的設定頁,找到 Posts,將 Menu title 從預設的 [Post] 改成 [我的文章],記得按右邊的儲存變更(Save Changes),設定就生效。

重整畫面,就會看到原本 Post 描述變成 [我的文章] 囉。

在 Menu title 從預設的 Post 改成我的文章

2. 針對特定角色隱藏不必要的功能選單

接下來我們還要針對不同的角色來顯示不同的選單,以商店經理(Shop Manager) 來示範:

我會用 Function 來做,因為 Admin Menu Editor 免費版對我來說不好設定,付費版有介面可以做到,就不用寫 Function 了。

解釋一下程式碼:

//要先確認帳號是什麼角色,所以要先取得目前角色
$user = wp_get_current_user(); 

//如果上一步驟取得的角色存在,同時還要是商店管理員shop_manager,才可以執行接下來的動作
if ( isset( $user->roles[0] ) && $user->roles[0] == 'shop_manager' ) {

//驗證是商店管理員後,就移除 Comments and Marketing 這兩個項目
     remove_menu_page( 'edit-comments.php' );          //Comments
     remove_menu_page( 'woocommerce-marketing' );      //Marketing
}
}
add_action( 'admin_menu', 'wpdocs_remove_menus' );

當然,我們可以舉一反三,變更不同的角色或移除其他選項。

這是 WordPress 各角色在程式碼表達的寫法及權限定義:

  • Super Admin – somebody with access to the site network administration features and all other features. See the Create a Network article.
  • Administrator (slug: ‘administrator’) – somebody who has access to all the administration features within a single site.
  • Editor (slug: ‘editor’) – somebody who can publish and manage posts including the posts of other users.
  • Author  (slug: ‘author’)  – somebody who can publish and manage their own posts.
  • Contributor (slug: ‘contributor’) – somebody who can write and manage their own posts but cannot publish them.
  • Subscriber (slug: ‘subscriber’) – somebody who can only manage their profile.

最後的成果就會長這樣,左邊選單是商店管理員,右邊是系統管理員的版本 👍

如何客製Wordpress後台選單
請我喝杯咖啡吧 ^^

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

PeiYing Tsai
author
愛藝術,喜歡以科技解決問題的數位產品設計師。 堅持信念,任何困難事,必有搞定的一天,Just try it! 隨手紀錄日常學習到的知識心得,希望對妳/你有幫助。
coffee-cup linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram