如何按需修改已注册分类法的显示UI

如你所知, ” show_ui” 布尔选项可用于在注册分类法时呈现或不渲染UI上的分类法菜单。函数custom_taxonomy(){

$labels = array( 'name'=> 'Taxonomies', 'singular_name'=> 'Taxonomy', 'menu_name'=> 'Taxonomy', 'all_items'=> 'All Items', 'parent_item'=> 'Parent Item', 'parent_item_colon'=> 'Parent Item:', 'new_item_name'=> 'New Item Name', 'add_new_item'=> 'Add New Item', 'edit_item'=> 'Edit Item', 'update_item'=> 'Update Item', 'view_item'=> 'View Item', 'separate_items_with_commas' => 'Separate items with commas', 'add_or_remove_items'=> 'Add or remove items', 'choose_from_most_used'=> 'Choose from the most used', 'popular_items'=> 'Popular Items', 'search_items'=> 'Search Items', 'not_found'=> 'Not Found', 'no_terms'=> 'No items', 'items_list'=> 'Items list', 'items_list_navigation'=> 'Items list navigation', ); $args = array( 'labels'=> $labels, 'hierarchical'=> false, 'public'=> true, 'show_ui'=> true, 'show_admin_column'=> true, 'show_in_nav_menus'=> true, 'show_tagcloud'=> true, ); register_taxonomy( 'taxonomy', array( 'post' ), $args ); } add_action( 'init', 'custom_taxonomy', 0 );

注册分类法后, 有什么方法可以修改此选项?像任何钩子或过滤器一样, 可以在functions.php中切换布尔值
#1你可以在注册分类法之前或在注册分类法时使用register_taxonomy_args过滤分类法选项。
示例代码:
/* * @param array $args The taxonomy args such as show_ui. * @param string $taxonomy The taxonomy name. */ add_filter( 'register_taxonomy_args', function ( $args, $taxonomy ) { if ( 'my_taxonomy' === $taxonomy ) { $args['show_ui'] = false; }return $args; }, 10, 2 );

你还可以” 挂钩” 一个” 动作” , 在注册分类法后立即触发此过滤器。例如, 你可以在此处为分类法分配其他职位/对象类型。
【如何按需修改已注册分类法的显示UI】示例代码:
/* * @param string $taxonomy The taxonomy name. */ add_action( 'registered_taxonomy', function ( $taxonomy ) { if ( 'my_taxonomy' === $taxonomy ) { register_taxonomy_for_object_type( $taxonomy, 'post' ); } } );

并且, 如果在注册分类法后必须(或需要)修改show_ui(或其他选项), 则可以使用全局$ wp_taxonomies, 它是所有注册分类法的数组。
示例代码:
/* * @param string $taxonomy The taxonomy name. */ add_action( 'registered_taxonomy', function ( $taxonomy ) { if ( 'my_taxonomy' === $taxonomy ) { global $wp_taxonomies; if ( ! is_array( $wp_taxonomies ) || ! isset( $wp_taxonomies[ $taxonomy ] ) ) { return; }$wp_taxonomies[ $taxonomy ]-> show_ui = false; } } );

    推荐阅读