个性化阅读
专注于IT技术分析

如何按需修改已注册分类法的显示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 );

你还可以”挂钩”一个”动作”, 在注册分类法后立即触发此过滤器。例如, 你可以在此处为分类法分配其他职位/对象类型。

示例代码:

/*
 * @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;
    }
} );
赞(0)
未经允许不得转载:srcmini » 如何按需修改已注册分类法的显示UI

评论 抢沙发

评论前必须登录!