移除WordPress文章/頁面編輯窗口多餘的meta模塊

本文目錄1隱藏多餘模塊2移除多餘模塊3移除自定義模塊4移除頁面編輯窗口的模塊

我們都知道,WordPress的文章/頁面編輯窗口附帶瞭很多功能模塊(Meta Boxes),如下圖所示:

remove-wordpress-meta-boxes-wpdaxue_com

顯示過多的模塊會顯得很煩亂,那麼如何隱藏或移除這些Meta模塊呢?

隱藏多餘模塊

WordPress 給大傢提供瞭一個“顯示選項”(在窗口的右上角)來隱藏它們:

0087-wpdaxue_com

去掉勾選,就可以隱藏不需要的模塊。但是這裡的設置隻是針對於當前用戶,如果是WordPress多用戶站點,你就要考慮進行後臺定制,從全局上移除不必要的模塊,一來提高用戶體驗,二來隱藏某些不想為用戶使用的功能。

移除多餘模塊

實現方法很簡單,直接根據自己的需要,將下面的代碼添加到主題的 functions.php 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 移除文章編輯界面默認的Meta模塊
function remove_my_post_metaboxes() {
remove_meta_box( 'authordiv','post','normal' ); // 作者模塊
remove_meta_box( 'commentstatusdiv','post','normal' ); // 迴響狀態模塊
remove_meta_box( 'commentsdiv','post','normal' ); // 迴響模塊
remove_meta_box( 'postcustom','post','normal' ); // 自定義字段模塊
remove_meta_box( 'postexcerpt','post','normal' ); // 摘要模塊
remove_meta_box( 'revisionsdiv','post','normal' ); // 修訂版本模塊
remove_meta_box( 'slugdiv','post','normal' ); // 別名模塊
remove_meta_box( 'trackbacksdiv','post','normal' ); // 引用模塊
 
remove_meta_box( 'categorydiv','post','normal' ); // 分類模塊
remove_meta_box( 'formatdiv','post','normal' ); // 文章格式模塊
remove_meta_box( 'submitdiv','post','normal' ); // 發佈模塊
remove_meta_box( 'tagsdiv-post_tag','post','normal' ); // 標簽模塊
}
add_action('admin_menu','remove_my_post_metaboxes');
 
//移除特色圖像模塊
add_action('do_meta_boxes', 'remove_thumbnail_box');
function remove_thumbnail_box() {
    remove_meta_box( 'postimagediv','post','side' );
}

// 移除文章編輯界面默認的Meta模塊
function remove_my_post_metaboxes() {
remove_meta_box( ‘authordiv’,’post’,’normal’ ); // 作者模塊
remove_meta_box( ‘commentstatusdiv’,’post’,’normal’ ); // 迴響狀態模塊
remove_meta_box( ‘commentsdiv’,’post’,’normal’ ); // 迴響模塊
remove_meta_box( ‘postcustom’,’post’,’normal’ ); // 自定義字段模塊
remove_meta_box( ‘postexcerpt’,’post’,’normal’ ); // 摘要模塊
remove_meta_box( ‘revisionsdiv’,’post’,’normal’ ); // 修訂版本模塊
remove_meta_box( ‘slugdiv’,’post’,’normal’ ); // 別名模塊
remove_meta_box( ‘trackbacksdiv’,’post’,’normal’ ); // 引用模塊 remove_meta_box( ‘categorydiv’,’post’,’normal’ ); // 分類模塊
remove_meta_box( ‘formatdiv’,’post’,’normal’ ); // 文章格式模塊
remove_meta_box( ‘submitdiv’,’post’,’normal’ ); // 發佈模塊
remove_meta_box( ‘tagsdiv-post_tag’,’post’,’normal’ ); // 標簽模塊
}
add_action(‘admin_menu’,’remove_my_post_metaboxes’); //移除特色圖像模塊
add_action(‘do_meta_boxes’, ‘remove_thumbnail_box’);
function remove_thumbnail_box() {
remove_meta_box( ‘postimagediv’,’post’,’side’ );
}

測試發現,“特色圖像”這個很特殊,使用 admin_menu 這個 add_action 沒辦法移除,需要使用 do_meta_boxes 才行。

移除自定義模塊

以上的代碼足夠移除WordPress自帶的Meta模塊瞭,但是如果是主題或外掛創建的Meta模塊,我們又該如何移除呢?比如下面是的某個主題的創建的Meta模塊“主題自帶面板”:

0089-wpdaxue_com

要移除這個模塊,我們需要在瀏覽器中查看這個頁面的源代碼,找到這個模塊對應的ID:

0088-wpdaxue_com

從源代碼可以看到,“主題自帶面板”的ID是 new-meta-boxes,接著在主題中通過 do_meta_boxes 這個add_action 來移除:

1
2
3
4
5
//移除特定模塊
add_action('do_meta_boxes', 'remove_new_custom_box');
function remove_new_custom_box() {
    remove_meta_box( 'new-meta-boxes','post','normal' );
}

//移除特定模塊
add_action(‘do_meta_boxes’, ‘remove_new_custom_box’);
function remove_new_custom_box() {
remove_meta_box( ‘new-meta-boxes’,’post’,’normal’ );
}

移除頁面編輯窗口的模塊

上面說的都是移除“文章”編輯窗口的模塊,那麼如果你想移除“頁面”編輯窗口的模塊,可以添加下面的代碼到主題的 functions.php 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 移除頁面編輯窗口的模塊
function remove_my_page_metaboxes() {
remove_meta_box( 'postcustom','page','normal' ); // 自定義字段模塊
remove_meta_box( 'postexcerpt','page','normal' ); // 摘要模塊
remove_meta_box( 'commentstatusdiv','page','normal' ); // 迴響模塊
remove_meta_box( 'pageparentdiv','page','normal' ); // 頁面屬性模塊
remove_meta_box( 'slugdiv','page','normal' ); // 別名模塊
remove_meta_box( 'authordiv','page','normal' ); // 作者模塊
remove_meta_box( 'submitdiv','page','normal' ); // 發佈模塊
 
}
add_action('admin_menu','remove_my_page_metaboxes');
 
//移除特色圖像模塊
add_action('do_meta_boxes', 'remove_page_thumbnail_box');
function remove_page_thumbnail_box() {
    remove_meta_box( 'postimagediv','page','side' );
}

// 移除頁面編輯窗口的模塊
function remove_my_page_metaboxes() {
remove_meta_box( ‘postcustom’,’page’,’normal’ ); // 自定義字段模塊
remove_meta_box( ‘postexcerpt’,’page’,’normal’ ); // 摘要模塊
remove_meta_box( ‘commentstatusdiv’,’page’,’normal’ ); // 迴響模塊
remove_meta_box( ‘pageparentdiv’,’page’,’normal’ ); // 頁面屬性模塊
remove_meta_box( ‘slugdiv’,’page’,’normal’ ); // 別名模塊
remove_meta_box( ‘authordiv’,’page’,’normal’ ); // 作者模塊
remove_meta_box( ‘submitdiv’,’page’,’normal’ ); // 發佈模塊 }
add_action(‘admin_menu’,’remove_my_page_metaboxes’); //移除特色圖像模塊
add_action(‘do_meta_boxes’, ‘remove_page_thumbnail_box’);
function remove_page_thumbnail_box() {
remove_meta_box( ‘postimagediv’,’page’,’side’ );
}

上面的代碼就足以移除默認的模塊瞭,如果包含有主題或外掛生成的自定義模塊,就請按照前文“移除自定義模塊”來操作即可。

註:本文中使用到的一個很重要的函數 remove_meta_box() 包含瞭 3 個參數:第一個參數是Meta模塊的ID,第二個參數是“類型”,比如文章就是“post”,頁面就是“page”,第三個參數是“上下文位置”,可選“normal”“advanced”或“side”。

更多詳情,請訪問 remove_meta_box()

發佈留言

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