版本4.4引入了register_taxonomy_args
筛选输入register_taxonomy()
可用于筛选用于注册分类的参数
/**
* Filter the arguments for registering a taxonomy.
*
* @since 4.4.0
*
* @param array $args Array of arguments for registering a taxonomy.
* @param array $object_type Array of names of object types for the taxonomy.
* @param string $taxonomy Taxonomy key.
*/
$args = apply_filters( \'register_taxonomy_args\', $args, $taxonomy, (array) $object_type );
因此,您可以执行以下操作:
add_filter( \'register_taxonomy_args\', function ( $args, $taxonomy, $object_type )
{
// Only target the built-in taxonomy \'category\'
if ( \'category\' !== $taxonomy )
return $args;
// Set our capability \'edit_terms\' to our value
$args["capabilities"]["edit_terms"] = \'do_not_allow\';
return $args;
}, 10, 3);
在所有旧版本上,您要么需要重新注册完整的“类别”分类法,要么使用您在问题中所使用的方法
编辑的Codex页面register_taxonomy
他说
此函数用于添加或覆盖分类法这正是它所做的,它要么创建自定义分类法,要么完全重写并注册核心分类法,它不向现有分类法添加任何额外参数