我使用创建了一些自定义分类法register_taxonomy, 但我想阻止添加新的术语。我注意到register\\u分类法中有一个“capabilities”参数,这是我应该使用的吗?如果是,我将如何使用它?
这是我的一些代码,我使用我创建的插件来添加分类法(因此是公共静态函数部分)。有没有一种简单的方法可以防止为我的分类法创建新的术语?
谢谢
Osu
public static function register_directory_styles_taxonomy()
{
$labels = array(
\'name\' => \'Music styles\',
\'singular_name\' => \'Music style\',
\'search_items\' => \'Search music styles\',
\'all_items\' => \'All music styles\',
\'parent_item\' => \'Parent music style\',
\'edit_item\' => \'Edit music style\',
\'update_item\' => \'Update music style\',
\'add_new_item\' => \'Add new music style\',
\'new_item_name\' => \'New music style\',
\'choose_from_most_used\' => \'Choose from most used music styles\'
);
$args = array(
\'hierarchical\' => true,
\'labels\' => $labels,
\'rewrite\' => false
// \'show_ui\' => false
);
register_taxonomy( \'ibmstyles\', \'ibmdirectory\', $args );
}
最合适的回答,由SO网友:s_ha_dum 整理而成
您可以使用打开的筛选器阻止添加新术语pre_insert_term
. 这个source is helpful 在制定你能做什么的过程中。
add_action( \'pre_insert_term\', function ( $term, $taxonomy )
{
return ( \'yourtax\' === $taxonomy )
? new WP_Error( \'term_addition_blocked\', __( \'You cannot add terms to this taxonomy\' ) )
: $term;
}, 0, 2 );