Altering the appearance of custom taxonomy inputs

I'm working on a site that will make use of a few custom taxonomies (for custom post types). I've chosen to ma

I'm working on a site that will make use of a few custom taxonomies (for custom post types). I've chosen to make some of the taxonomies hierarchical because the method of inputting values (checking boxes) is more desirable for this site than the free-form input of non-hierarchical taxonomies. However, what I would really like is to be able to use radio button inputs instead of check boxes. Additionally, I'd like to remove the dropdown that is used to choose the parent item in the taxonomy.

Am I going about this the wrong way? Should I start with non-hierarchical taxonomies and modify the input methods on those instead? I'm completely open to input and will gladly answer any questions or supply more information if I can.

I'm working on a site that will make use of a few custom taxonomies (for custom post types). I've chosen to make some of the taxonomies hierarchical because the method of inputting values (checking boxes) is more desirable for this site than the free-form input of non-hierarchical taxonomies. However, what I would really like is to be able to use radio button inputs instead of check boxes. Additionally, I'd like to remove the dropdown that is used to choose the parent item in the taxonomy.

Am I going about this the wrong way? Should I start with non-hierarchical taxonomies and modify the input methods on those instead? I'm completely open to input and will gladly answer any questions or supply more information if I can.

Share Improve this question asked Jan 21, 2011 at 19:06 Travis NorthcuttTravis Northcutt 3,4005 gold badges43 silver badges60 bronze badges 4
  • +1 Good Question. This would also be nice for a project I'm working on too. Moreover, have the custom taxonomy be a dropdown menu instead of a list of "categories". – Zack Commented Jan 21, 2011 at 19:28
  • Yeah, a dropdown would be great as well. – Travis Northcutt Commented Jan 21, 2011 at 19:55
  • 1 These two seems to be dealing with very similar issue: Custom Post Type - Taxonomy Dropdown Menu? and Need Help in Saving Taxonomy Terms – Michal Mau Commented Jan 22, 2011 at 1:43
  • Rather than trying to modify the existing metabox, what you might look into doing is removing the default metabox for the given taxonomy, then registering your own to call a custom function that displays the terms in a radio group, and this would tie in with the two links provided above by maugly. – t31os Commented Jan 22, 2011 at 14:32
Add a comment  | 

2 Answers 2

Reset to default 13

Sure thing, just use CSS and the 'admin_head' hook to make it disappear. I believe this is what you are looking for?


(source: mikeschinkel)

Just add the following to your theme's functions.php file or to a .php file of a plugin that you might be writing. Note that I included an 'init' hook to define the "Home" post type and the "Bath" taxonomy so others can more easily follow the example. Also note that if your taxonomy is named Baths" you'll need to change the CSS selector to be #newbaths_parent instead of #newbath_parent:

add_action('admin_head','remove_bath_parents');
function remove_bath_parents() {
  global $pagenow;
  if (in_array($pagenow,array('post-new.php','post.php'))) { // Only for the post add & edit pages
    $css=<<<STYLE
<style>
<!--
#newbath_parent {
  display:none;
}
-->
</style>
STYLE;
    echo $css;
  }
}
add_action('init','add_homes_and_baths');
function add_homes_and_baths() {
  register_post_type('home',
    array(
      'label'           => 'Homes',
      'public'          => true,
      'rewrite'         => array('slug' => 'homes'),
      'hierarchical'    => false,
    )
  );
  register_taxonomy('bath', 'home', array(
    'hierarchical'    => true,
    'label'           => 'Baths',
    'rewrite'         => array('slug' => 'baths' ),
    )
  );
}

UPDATE

So it seems I missed the radio button part of the question. Unfortunately WordPress does not make this easy but you can make it happen by using PHP output buffering (via the ob_start() and ob_get_clean() functions.) Just find a hook before the metabox is output ('add_meta_boxes') and a hook after it is output ('dbx_post_sidebar') and then search the captured HTML for 'checkbox' and replace with 'radio', echo it to the screen and yer done! Code follows:

add_action('add_meta_boxes','mysite_add_meta_boxes',10,2);
function mysite_add_meta_boxes($post_type, $post) {
  ob_start();
}
add_action('dbx_post_sidebar','mysite_dbx_post_sidebar');
function mysite_dbx_post_sidebar() {
  $html = ob_get_clean();
  $html = str_replace('"checkbox"','"radio"',$html);
  echo $html;
}

And the evidence:


(source: mikeschinkel)

or, if you're lazy can use this plugin: Single Value Taxonomy UI

(I would've rather added this as a comment to Mike's answer as it mostly does the same thing - but I can't yet add comments)

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745570015a4633624.html

相关推荐

  • Altering the appearance of custom taxonomy inputs

    I'm working on a site that will make use of a few custom taxonomies (for custom post types). I've chosen to ma

    4小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信