問題描述
現在,當您在所需的帖子類型中添加或編輯特定帖子時,還有更多的屏幕選項。雖然這些屏幕選項顯示/隱藏元框。我想以編程方式獲得所有這些註冊的屏幕選項的列表,以便我可以再次檢查是否存在一系列屏幕選項,如果這樣,我打算以編程方式刪除它們。
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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。



