Customize table columns in your WordPress admin

This code snippet will give you an idea on how to add additional columns in WordPress admin manage screens. Let’s take the example metadata from our previous Code snippet “How to add custom field in post type post“. In our example, we will display the “Author Name” and “Date Published” metadata in the post type “post” table. Just copy and paste this code in your functions.php file.
                

// Add column header
function my_custom_columns_head( $defaults ){
    // $defaults variable is an array consist of default table header
    //  it needs key and value pair
    $defaults[‘author_name’]  = __(‘Author Name’, ‘my_textdomain’ );
    $defaults[‘date_publish’]  = __(‘Date Published’, ‘my_textdomain’ );
    return $defaults;
}
add_filter(‘manage_post_posts_columns’, ‘my_custom_columns_head’, 10); 
 
// Display column header value
function my_custom_columns_content( $column_key, $post_ID ){
    if ( $column_key == ‘author_name’ ){
        echo get_post_meta( $post_ID, ‘author_name’, true );
    }
    if( $column_key == ‘date_publish’ ){
        echo get_post_meta( $post_ID, ‘date_publish’, true );
    }
}
add_action(‘manage_post_posts_custom_column’, ‘my_custom_columns_content’, 10, 2);

        

Other WordPress Manage Screens hooks and filters

Default Posts
                

add_filter(‘manage_post_posts_columns’, ‘my_custom_columns_header’, 10);
add_action(‘manage_post_posts_custom_column’, ‘my_custom_columns_content’, 10, 2);

        
Default Pages
                

add_filter(‘manage_page_posts_columns’, ‘my_custom_columns_header’, 10);
add_action(‘manage_page_posts_custom_column’, ‘my_custom_columns_content’, 10, 2);

        
Custom Post Type ( Story )
                

add_filter(‘manage_story_posts_columns’, ‘my_custom_columns_header_movies’, 10);
add_action(‘manage_story_posts_custom_column’, ‘my_custom_columns_content_movies’, 10, 2);

        
Post Categories
                

add_filter(‘manage_edit-category_columns’, ‘my_custom_columns_header’);
add_filter(‘manage_category_custom_column’, ‘my_custom_columns_content_taxonomy’, 10, 3);

        
Post Tags
                

add_filter(‘manage_edit-post_tag_columns’, ‘my_custom_columns_header’);
add_filter(‘manage_post_tag_custom_column’, ‘my_custom_columns_content_taxonomy’, 10, 3);

        
Link Categories
                

add_filter(‘manage_edit-link_category_columns’, ‘my_custom_columns_header’);
add_filter(‘manage_link_category_custom_column’, ‘my_custom_columns_content_taxonomy’, 10, 3);

        
Media Library
                

add_filter(‘manage_media_columns’, ‘my_custom_columns_header’);
add_filter(‘manage_media_custom_column’, ‘my_custom_columns_content’, 10, 2);

        
Users
                

add_filter(‘manage_users_columns’, ‘my_custom_columns_header’);
add_filter(‘manage_users_custom_column’, ‘my_custom_columns_content_users’, 10, 2);