Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'm creating a custom taxonomy whose terms must remain fixed by all users. Once I've set up the starting set of terms, I want them to be immutable. I also don't want to clutter up the Admin UI with additional links and metaboxes where they're not needed.

However, setting public => 'false', or show_ui => 'false' not only hides the manage tax link, but also prevents the user from assigning the term to a new post.

I need a way to hide the "manage" link within the post type pulldown, show the term selector metabox on the post page, but (hopefully) disable the "Add Term" option at the bottom of this metabox.

Does such a feature exist? Or are taxonomies always supposed to be user editable?

Custom taxonomy capabilities get me most of the way there, since you can independently set CRUD rights based on capability. But how to disable even admins from modification? (I know this sounds like a bad idea but it's viable.)

share|improve this question
    
Have you thought about disabling/hiding the those features in the admin theme with JS/CSS as a quick fix? –  Paul Sheldrake Sep 13 '11 at 12:56
1  
That's fugly man. :) But yeah, I suppose that I could hit that, if I put a paper bag on its head... –  Tom Auger Sep 13 '11 at 15:08
1  
You talking categories (hierarchical) or tags? You just need a hidden taxonomy + custom widget. If it's categories, it easier to do, if tags... depends if the number of items is decent. And you can hide them from public view only for non-Administrators. That way you can manage them easily while the others can't touch them. –  EarnestoDev Oct 23 '11 at 4:43
    
@EarnestoDev sounds like the only option. Post your comment as an answer and I'll accept it. –  Tom Auger Oct 24 '11 at 16:46
    
@TomAuger You want to create something similar to Post Formats right? I mean metabox in post edit screen and not editable from wp-admin UI –  Mamaduka Oct 24 '11 at 20:01
show 1 more comment

2 Answers 2

up vote 0 down vote accepted

You talking categories (hierarchical) or tags? You just need a hidden taxonomy + custom widget. If it's categories, it easier to do, if tags... depends if the number of items is decent. And you can hide them from public view only for non-Administrators. That way you can manage them easily while the others can't touch them.

Thanks.

share|improve this answer
1  
It would be hidden taxonomy + custom meta box actually, not widget. But - sigh - I think you're right that there's no other option. –  Tom Auger Oct 26 '11 at 13:01
    
True. Widget, Meta-Box, same collapsible thingy :) –  EarnestoDev Oct 26 '11 at 16:55
add comment

A bit late but thought this could use updating.

Create your custom taxonomy and add the terms you need, then go back to your register_taxonomy() function and set the capabilities argument (which itself accepts an array of capabilities). You can see how I setup sex for dogs which can only ever have two values–"Male" or "Female", which I input. Now admins can only assign a dog to a sex but cannot add, delete, or edit the sexes.

register_taxonomy('sex', 'dog', array(
  'capabilities' => array(
    'manage_terms' => '',
    'edit_terms' => '',
    'delete_terms' => '',
    'assign_terms' => 'edit_posts'
  ),
  'label' => 'Sex',
  'labels' => array(
    'name' => 'Sex',
    'add_new_item' => 'Add New Sex',
    'new_item_name' => "Add New Sex"
  ),
  'public' => true,
  'show_admin_column' => true,
  'show_in_nav_menus' => false,
  'show_tagcloud' => false,
  'show_ui' => true,
  'hierarchical' => true
));

Works on hierarchical taxonomies; I did not try non-hierarchical but it should work there too.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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