WordPress文章編輯頁刪除相關模塊
來源:程序員人生 發布時間:2013-10-29 00:48:23 閱讀次數:3917次
在WordPress后臺的文章編輯頁,有很多的模塊,如"摘要"、"發送Trackbacks"、"分類"、"標簽"、"自定義域"、"討論","作者"等。如下圖就是側邊欄的"發布"和"標簽"模塊。

其實WordPress提供這么多的面板,有很多我們是用不著的,如"發送 Trackbacks","評論"等,不同用戶還有不同的喜好。這時候我們可以將不需要的面板刪除,方法很簡單,在文章編輯頁面右上角有個 "顯示選項" 按鈕,點擊可以彈出如下圖所示的選項,你可以根據需要去除不需要的模塊。

但是當你的博客有多個注冊用戶的時候,想對某些注冊用戶隱藏掉某些模塊,讓他們連選擇顯示的機會都沒有,該怎么做呢?如露兜博客最近開通了讀者投稿功能,投稿者只能填寫文章標題和內容,其他的功能如"分類","標簽","摘要"等功能一律不提供。我們可以使用WordPress函數remove_meta_box()來實現我們想要的功能。在不考慮用戶角色的情況下,可以在主題目錄下的functions.php中添加以下php代碼:
// hook the admin init
add_action('admin_init','customize_meta_boxes');
function customize_meta_boxes() {
// 刪除以下兩個模塊categorydiv、tagsdiv-post_tag
remove_meta_box('categorydiv','post','normal');
remove_meta_box('tagsdiv-post_tag','post','normal');
}
這樣就刪除了名稱為 categorydiv 和 tagsdiv-post_tag 的模塊,也就是分類和標簽模塊。那怎么知道我要刪除的模塊名稱呢?文章編輯頁的源代碼中所有class="postbox"對應的id名稱就是該模塊的名稱,如:
<div class="postbox" id="postexcerpt">
那么這個模塊的名稱就是postexcerpt,也就是摘要模塊,具體你可以使用FireBug看看源代碼。以下給出所有模塊對應的名稱,給大家節省點力氣:
- 分類:categorydiv
- 標簽:tagsdiv-post_tag
- 摘要:postexcerpt
- 發送trackbacks:trackbacksdiv
- 自定義域:postcustom
- 討論:commentstatusdiv
- 作者:authordiv
- 評論:commentsdiv
- 文章別名:slugdiv
- 文章修訂版:revisionsdiv
那要是針對某個用戶角色去除某些模塊,怎么做呢?我們只要對以上代碼,再判斷一下用戶的等級即可:
//hook the admin init
add_action('admin_init','customize_meta_boxes');
function customize_meta_boxes() {
//retrieve current user info
global $current_user;
get_currentuserinfo();
//如果當前用戶的等級小于3,那么就刪除分類和標簽模塊
if ($current_user->user_level < 3)
{
remove_meta_box('categorydiv','post','normal');
remove_meta_box('tagsdiv-post_tag','post','normal');
}
}
在WordPress后臺 – 用戶那里,管理員可以查看 / 編輯用戶的角色,以下是用戶角色和其等級的對應關系:
- 0 級對應 訂閱者
- 1 級對應 投稿者
- 2 – 4 級對應 作者
- 5 – 7 級對應 編輯
- 8 – 10 級對應 管理員
參考文章
- User Levels
- Roles and Capabilities
- Function Reference/remove meta box
- Advanced Power Tips for WordPress Template Developers: Reloaded
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈