问题描述
现在,当您在所需的帖子类型中添加或编辑特定帖子时,还有更多的屏幕选项。虽然这些屏幕选项显示/隐藏元框。我想以编程方式获得所有这些注册的屏幕选项的列表,以便我可以再次检查是否存在一系列屏幕选项,如果这样,我打算以编程方式删除它们。
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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。