I’ve created a custom post-type along with a custom taxonomy and everything is fine, apart from one particular thing.
First off, my use case: I need it to act like a category system, however not be hierarchical (one level only), so I left both to the default setting of
false for the
This has been fine, apart from one problem where it allows me to add a “sub-level” within the metabox.
First, the code:
register_post_type( 'letter', array( 'labels' => array( 'name' => __( 'Letters' ), 'singular_name' => __( 'Letter' ), //.......... ), 'public' => true, 'taxonomies' => array('letter'), //........ ) ); // Our args for the custom taxonomy below $args = array( 'labels' => array( 'name' => __('Recipients'), 'singular_name' => __('Recipient'), //..... ), 'meta_box_cb' => 'post_categories_meta_box', ); // Register a custom taxonomy for our letter categories register_taxonomy( 'recipient', 'letter', $args ); // Connect the post type and taxonomy together to be safe register_taxonomy_for_object_type( 'recipient', 'letter' );
Now, as you can see I needed to set the
post_categories_meta_box otherwise it would end up having the functionality of the tag metabox, so, now it looks like this:
So this is good, I get the category functionality that I like, however I also get the “Add New Recipient” where when you open it up it allows you to add a new “recipient” and select a parent recipient; this I do not want.
Is my only option to create a new callback function based on the
post_categories_meta_box function and remove the respective code to get rid of that parent functionality?
I don’t particularly want to do that as then it would break future updates to this function.
Is there another option?
Read more here:: Creating a non-hierarchical Taxonomy that behaves like categories