嗨,我正在为我的工作建立多个网站。所有网站都将利用CPTs和Custom 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的所有元框之外,是否还有更有效的方法来做到这一点?
发布于 2016-09-06 23:44:31
ACF是一个很好的插件,可以将这些作为选项,但是您可以考虑在主题中注册自定义分类法,或者插件WordPress方法。
如果这是您的选择,您将有很大的灵活性来做一些事情。
这里有一个从法典中修改的简单示例:
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
)
);
}编辑:我刚刚找到了另一个不在法典中的参数,叫做hide_meta_box。这可能更像您正在寻找的东西,而不是完全隐藏UI。请参阅以上代码块中的编辑。
https://wordpress.stackexchange.com/questions/238424
复制相似问题