問題描述
現在,當您在所需的帖子型別中新增或編輯特定帖子時,還有更多的螢幕選項。雖然這些螢幕選項顯示/隱藏元框。我想以程式設計方式獲得所有這些註冊的螢幕選項的列表,以便我可以再次檢查是否存在一系列螢幕選項,如果這樣,我打算以程式設計方式刪除它們。
Click Here For Full Size Screenshot
問題我可以如何以程式設計方式獲取所需註冊的螢幕選項 (元框) 的列表,您可以在所需的帖子型別中新增或編輯特定的帖子。
最終,這裡的目標是刪除這些選項,而不僅僅是停用它們。我正在尋找一些符合 removing unnecessary dashboard meta boxes 所做的一切。
最佳解決方案
您需要的是在 get_current_screen()->id 索引的全球 $wp_meta_boxes 中。刪除螢幕選項也將刪除您可以使用'in_admin_header'鉤子顯示螢幕選項之前您可以執行的 metaboxes 。
所以讓我們假設你想擺脫你在這個螢幕截圖中看到的”Send Trackbacks” 螢幕選項:
將以下課程放入主題的 functions.php 檔案中,或者在您可能正在構建的外掛中,程式碼將刪除”Send Trackbacks” 螢幕選項 (它是相關的 metabox,這也是您想要的,對嗎?)
class Michael_Ecklunds_Admin_Customizer {
function __construct() {
add_action( 'in_admin_header', array( $this, 'in_admin_header' ) );
}
function in_admin_header() {
global $wp_meta_boxes;
unset( $wp_meta_boxes[get_current_screen()->id]['normal']['core']['trackbacksdiv'] );
}
}
new Michael_Ecklunds_Admin_Customizer();
以下程式碼新增到 WordPress 3.4 站點後,它的外觀如下:
在 PhpStorm 中使用 Zend 偵錯程式是 $wp_meta_boxes[get_current_screen()->id]的檢查,所以你可以看到 WordPress 3.4 的預設安裝在 Post 編輯螢幕中的值 (我已經在我的例子中引用了陣列索引,即 $wp_meta_boxes[get_current_screen()->id]['normal']['core']['trackbacksdiv']:
希望這是你正在尋找的?
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。



