从多个CPT中移除多个Meta Box

时间:2016-09-06 作者:Ollie

嗨,我正在为我的工作建立多个网站。所有网站都将利用CPTsCustom Taxonomies. 将使用Advanced Custom Fields 插件。因此,我想从所有潜在站点中删除所有分类法元框。我知道我可以通过以下方式做到这一点:

function my_remove_meta_boxes() {
        remove_meta_box( \'tax-1div\', \'CPT-1\', \'side\' );
        remove_meta_box( \'tax-2div\', \'CPT-1\', \'side\' );
        remove_meta_box( \'tax-3div\', \'CPT-1\', \'side\' );
        remove_meta_box( \'tax-4div\', \'CPT-1\', \'side\' );
        remove_meta_box( \'tax-5div\', \'CPT-1\', \'side\' );
}
add_action( \'admin_menu\', \'my_remove_meta_boxes\' );
但这只会从定义的CPT-1 并非所有潜在的CPT组合。要从所有潜在的CPT中删除,我必须这样做:

    function my_remove_meta_boxes() {
                remove_meta_box( \'tax-1div\', \'CPT-1\', \'side\' );
                remove_meta_box( \'tax-2div\', \'CPT-1\', \'side\' );
                remove_meta_box( \'tax-3div\', \'CPT-1\', \'side\' );
                remove_meta_box( \'tax-4div\', \'CPT-1\', \'side\' );
                remove_meta_box( \'tax-5div\', \'CPT-1\', \'side\' );
                remove_meta_box( \'tax-1div\', \'CPT-2\', \'side\' );             
                remove_meta_box( \'tax-2div\', \'CPT-2\', \'side\' );
                remove_meta_box( \'tax-3div\', \'CPT-2\', \'side\' );
                remove_meta_box( \'tax-4div\', \'CPT-2\', \'side\' );
                remove_meta_box( \'tax-5div\', \'CPT-2\', \'side\' );
        }
        add_action( \'admin_menu\', \'my_remove_meta_boxes\' );
除了为所有CPT取消注册所有元框之外,还有更有效的方法吗?

1 个回复
SO网友:Jeremy Ross

ACF是一个很好的插件,可以将这些作为选项,但您可以考虑在主题中注册自定义分类法,或将WordPress way.

如果这是你的一个选择,你会有很大的灵活性来做一些事情。

您可以为多个帖子类型注册1个分类法,您可以选择隐藏UI,这样以后就不必隐藏它了这里有一个从《法典》中修改过来的简单示例,供我们参考:

add_action( \'init\', \'create_wpse_tax\' );

function create_wpse_tax() {
    register_taxonomy(
        \'custom_tax\',
        array(\'cpt_1\',\'cpt_2\',\'cpt_3\'), // <- multiple post types in an array here.
        array(
            \'label\' => __( \'Custom Tax\' ),
            \'rewrite\' => array( \'slug\' => \'custom-tax\' ),
            \'hierarchical\' => true,
            \'show_ui\' => false, // <- don\'t show the UI
            \'hide_meta_box\' => true // **EDIT** - don\'t show the meta box
        )
    );
}
EDIT: 我刚刚找到了另一个不在抄本中的参数hide_meta_box. 这可能更像您正在寻找的内容,而不是完全隐藏UI。请参见上面代码块中的编辑。

相关推荐

如何在WordPress开发中添加带有ACF自定义字段ID的自定义metabox字段

我是wordpress开发的新手,我在我的项目中安装了高级自定义字段插件,并创建了两个文本字段名称&;我还创建了一个插件,可以在帖子中创建一个带有文本框的元框。现在在帖子中,我将获得自定义字段名称(&A);电子邮件和我的自定义元框旁边将出现,但我必须将我的元框附加到名称字段旁边,即在名称字段和电子邮件字段之间。我的metabox代码如下。请任何人帮帮我//Creating the custom meta box function my_notice_meta_box() {