How to Add a Post Featured Image Column in WordPress Admin

Quick Summary
- Add a Featured Image column with post thumbnails to the admin posts list, so posts missing one are easy to spot.
- manage_posts_columns adds the column, and manage_posts_custom_column prints each post's featured image at thumbnail size, leaving posts without one blank.
- Pages need manage_pages_columns and manage_pages_custom_column, and passing array( 60, 60 ) instead of thumbnail keeps rows shorter.
The posts list in the WordPress admin doesn’t show featured images, so it’s hard to spot which posts are missing one. This snippet adds a Featured Image column with a thumbnail for each post. Add it to your child theme’s functions.php or a small custom plugin.
add_filter('manage_posts_columns', 'add_img_column');
add_filter('manage_posts_custom_column', 'manage_img_column', 10, 2);
function add_img_column($columns) {
$columns['img'] = 'Featured Image';
return $columns;
}
function manage_img_column($column_name, $post_id) {
if( $column_name == 'img' ) {
echo get_the_post_thumbnail($post_id, 'thumbnail');
}
return $column_name;
}How the featured image admin column works
- The
manage_posts_columnsfilter passes in the list of columns.add_img_column()adds one with the keyimgand the heading Featured Image, at the end of the table. manage_posts_custom_columnruns for each row and custom column. For theimgcolumn,manage_img_column()prints the post’s featured image at thethumbnailsize. Posts without one get an empty cell.- The second function is registered with
add_filter()although the hook is an action. WordPress accepts that, and the returned value is simply ignored (see how action and filter hooks differ).
These hooks cover posts and non-hierarchical custom post types. Pages use manage_pages_columns and manage_pages_custom_column, so hook the same two functions there if you want the column on pages too.
The thumbnail size is set under Settings > Media (150 × 150 pixels by default), which makes the rows fairly tall. To show a smaller image, pass a size array such as array( 60, 60 ) instead of 'thumbnail'.
Related articles
- a sortable registration date column for users: the same column hooks on the Users screen
- applying custom CSS to the admin area: to give the new column a fixed width

