Call register_taxonomy()
with 'show_admin_column' => TRUE
and WordPress will create your columns automatically. This parameter was added in version 3.5. You don’t need a custom filter anymore.
I have written a small plugin to demonstrate this case: t5-taxonomy-location.
This is the registration code:
protected function register_taxonomy()
{
$this->set_labels();
$args = array (
'labels' => $this->labels,
'label' => $this->labels['singular_name'],
'public' => TRUE,
'show_in_nav_menus' => TRUE,
'show_ui' => TRUE,
'show_tagcloud' => TRUE,
'rewrite' => array (
'slug' => _x( 'location', 'slug', 'plugin_t5_tax_location' ),
'with_front' => apply_filters( 't5_tax_location_slug_front', FALSE )
),
'query_var' => 'location',
'hierarchical' => TRUE,
// New in WordPress 3.5
// see http://core.trac.wordpress.org/ticket/21240
'show_admin_column' => TRUE
);
$tax_post_types = apply_filters(
't5_tax_location_post_types',
array( 'post', 'page', 'attachment' )
);
register_taxonomy( $this->taxonomy, $tax_post_types, $args );
}