0

I am using tags (in a disciplined way) as a hack to manage categories with multiple parents. It would be nice to be able to select tags using the checkmark UI, the same way categories are selected.

Is there an easy way to change the tag select UI to use checkmarks?

1 Answer 1

0

I did this for my product tags, so you just need to change the reference to product_tag and product to post_tag and post. You are basically making the taxonomy of post_tag hierarchical.

You will need to add it to your functions.php:

//Make Product Tag Hierarchical
function wd_hierarchical_tags_register() {

    // Maintain the built-in rewrite functionality of WordPress tags  
    global $wp_rewrite;

    $rewrite =  array(
        'hierarchical' => false, // Maintains tag permalink structure
        'slug'         => get_option('tag_base') ? get_option('tag_base') : 'product_tag',
        'with_front'   => ! get_option('tag_base') || $wp_rewrite->using_index_permalinks(),
        'ep_mask'      => EP_TAGS,
    );

    // Redefine tag labels (or leave them the same)    
    $labels = array(
        'name'                       => _x( 'Tags', 'Taxonomy General Name', 'hierarchical_tags' ),
        'singular_name'              => _x( 'Tag', 'Taxonomy Singular Name', 'hierarchical_tags' ),
        'menu_name'                  => __( 'Taxonomy', 'hierarchical_tags' ),
        'all_items'                  => __( 'All Tags', 'hierarchical_tags' ),
        'parent_item'                => __( 'Parent Tag', 'hierarchical_tags' ),
        'parent_item_colon'          => __( 'Parent Tag:', 'hierarchical_tags' ),
        'new_item_name'              => __( 'New Tag Name', 'hierarchical_tags' ),
        'add_new_item'               => __( 'Add New Tag', 'hierarchical_tags' ),
        'edit_item'                  => __( 'Edit Tag', 'hierarchical_tags' ),
        'update_item'                => __( 'Update Tag', 'hierarchical_tags' ),
        'view_item'                  => __( 'View Tag', 'hierarchical_tags' ),
        'separate_items_with_commas' => __( 'Separate tags with commas', 'hierarchical_tags' ),
        'add_or_remove_items'        => __( 'Add or remove tags', 'hierarchical_tags' ),
        'choose_from_most_used'      => __( 'Choose from the most used', 'hierarchical_tags' ),
        'popular_items'              => __( 'Popular Tags', 'hierarchical_tags' ),
        'search_items'               => __( 'Search Tags', 'hierarchical_tags' ),
        'not_found'                  => __( 'Not Found', 'hierarchical_tags' ),
    );

    // Override structure of built-in WordPress tags    
    register_taxonomy( 'product_tag', 'product', array(
        'hierarchical'      => true, // Was false, now set to true
        'query_var'         => 'product_tag',
        'labels'            => $labels,
        'rewrite'           => $rewrite,
        'public'            => true,
        'show_ui'           => true,
        'show_admin_column' => true,
        '_builtin'          => true,
    ) );  
}
add_action( 'init', 'wd_hierarchical_tags_register' );

This is where it came from, with more explanation: How (and Why) to Convert WordPress Tags from ‘Flat’ to ‘Hierarchical’

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.