How to show the taxonomy assigned to a post in the table (where all the posts are displayed) of the custom post type?

Using my test site and some test code this is what I think you were looking for?

Screenshot of WordPress Custom Post List in the Admin showing associated Taxonomies
(source: mikeschinkel.com)

To achieve this you need to use two (2) hooks, one being specific to your post type: 'manage_static_content_posts_columns' and 'manage_posts_custom_column'. In order to make it work I took your code and packaged it in a class, and also made it a plugin (it doesn’t have to be a plugin; you could just take the code and put in in your theme’s functions.php file if you like.)

<?php 
/*
Plugin name: Static Content
*/
if (!class_exists('YourSite_StaticContent')) {
  class YourSite_StaticContent {
    static function on_load() {
      add_action('init',array(__CLASS__,'init'));
      add_filter('manage_static_content_posts_columns',
          array(__CLASS__,'manage_static_content_posts_columns'));
      add_filter('manage_posts_custom_column', 
          array(__CLASS__,'manage_posts_custom_column'));
    }
    function manage_static_content_posts_columns($columns){
      $new = array();
      foreach($columns as $key => $title) {
        if ($key=='author') // Put the Sections column before the Author column
          $new['sections'] = 'Sections';
        $new[$key] = $title;
      }
      return $new;
    }
    static function manage_posts_custom_column($column){
      global $post;
      switch ($column) {
        case "sections":
          echo get_the_term_list($post->ID, 'section', '', ', ','');
          break;
      }
    }
    static function init() {
      register_post_type('static_content',array(
        'labels' => array(
          'name' => __( 'Static Content' ),
          'singular_name' => __( 'Static Content' ),
          'add_new_item' => 'Add New Static Content',
          'edit_item' => 'Edit Static Content',
          'new_item' => 'New Static Content',
          'search_items' => 'Search Static Content',
          'not_found' => 'No Static Content found',
          'not_found_in_trash' => 'No Static Content found in trash',
        ),
        'public' => true,
        'hierarchical' => false,
        'taxonomies' => array( 'section'),
        'supports' => array('title','editor','excerpt'),
        'rewrite' => array('slug'=>'static_content','with_front'=>false),
      ));
      register_taxonomy('section','static_content',array(
        'hierarchical' => true,
        'labels' => array(
          'name' => __( 'Section' ),
          'singular_name' => __( 'Section' ),
          'add_new_item' => 'Add New Section',
          'edit_item' => 'Edit Section',
          'new_item' => 'New Section',
          'search_items' => 'Search Section',
          'not_found' => 'No Sections found',
          'not_found_in_trash' => 'No Sections found in trash',
          'all_items' => __( 'All Sections' ),
        ),
        'query_var' => true,
        'rewrite' => array( 'slug' => 'section' ),
        ));
      if (!get_option('yoursite-static-content-initialized')) {
        $terms = array(
          'Footer',
          'Header',
          'Front Page Intro',
          'Front Page Content',
          );
        foreach($terms as $term) {
          if (!get_term_by('name',$term,'section')) {
            wp_insert_term($term, 'section');
          }
        }
        update_option('yoursite-static-content-initialized',true);
      }
    }
  }
  YourSite_StaticContent::on_load();
}

Leave a Comment