search ]

Show Featured Image Column in WordPress Admin Posts

By default, WordPress does not show the featured image (thumbnail) in the list of posts in the admin panel. With a small code snippet, you can add a new column that displays the post thumbnail next to the title, author, or date columns.

This tweak is especially helpful for editors and content managers who rely on visual cues to identify posts quickly.

Add the Featured Image Column to the Admin Post List

Add the Featured Image Column to the Admin Post List

To add the featured image column, you need to hook into two WordPress filters and one action: manage_posts_columns to register the column, manage_posts_custom_column to render the image, and admin_head to style it.

add_filter( 'manage_posts_columns', 'add_featured_image_column' );
function add_featured_image_column( $columns ) {
    $new = [];
    foreach ( $columns as $key => $value ) {
        if ( $key === 'title' ) {
            $new['featured_image'] = __( 'Featured Image' );
        }
        $new[ $key ] = $value;
    }
    return $new;
}

add_action( 'manage_posts_custom_column', 'display_featured_image_column', 10, 2 );
function display_featured_image_column( $column, $post_id ) {
    if ( $column === 'featured_image' ) {
        $thumbnail = get_the_post_thumbnail( $post_id, [ 60, 60 ] );
        echo $thumbnail ?: '-';
    }
}

add_action( 'admin_head', 'featured_image_column_style' );
function featured_image_column_style() {
    echo '<style>
        .column-featured_image { width: 80px; text-align: center; }
        .column-featured_image img { border-radius: 4px; }
    </style>';
}

Add this code to your child theme’s functions.php file or a site-specific plugin. Never edit the parent theme directly – your changes will be lost on the next theme update.

Change the Image Size

You can control the thumbnail size by adjusting the parameters in the get_the_post_thumbnail() function.

The second argument accepts either a registered image size (like 'thumbnail', 'medium', or a custom image size) or an array with custom dimensions.

For example, to display a 100×100 image instead of 60×60:

$thumbnail = get_the_post_thumbnail( $post_id, [ 100, 100 ] );

To use a registered image size from your theme:

$thumbnail = get_the_post_thumbnail( $post_id, 'admin-thumb' );

Make It Work for Custom Post Types

If you want to apply the same column to a custom post type (e.g., portfolio), replace the filter and action with their CPT-specific versions:

add_filter( 'manage_portfolio_posts_columns', 'add_featured_image_column' );
add_action( 'manage_portfolio_posts_custom_column', 'display_featured_image_column', 10, 2 );

The pattern is manage_{post_type}_posts_columns for the filter and manage_{post_type}_posts_custom_column for the action. Replace {post_type} with your CPT slug.

FAQs

Common questions about displaying featured images in the WordPress admin:

Will this code slow down the admin panel?
No. The code uses get_the_post_thumbnail() which loads already-generated thumbnail sizes. Since WordPress creates thumbnails when you upload an image, no additional image processing happens when loading the admin post list.
Does this work with WooCommerce products?
WooCommerce already displays product images in the admin product list by default. If you need it for a custom post type registered by a plugin, use the CPT-specific filter pattern: manage_{post_type}_posts_columns.
Can I make the column sortable?
Sorting by featured image isn't practical since images don't have a natural sort order. However, you could sort by whether a featured image exists or not by hooking into manage_edit-post_sortable_columns and modifying the query with pre_get_posts to check for _thumbnail_id meta.
What happens if a post has no featured image?
The code displays a dash (-) as a fallback when no featured image is set. You can customize this to show a placeholder image or any other text by modifying the fallback value in the display_featured_image_column function.
Can I add this column to the Pages list too?
Yes. Use manage_pages_columns and manage_pages_custom_column instead of the post-specific filters. The callback functions remain the same.

Summary

This small enhancement can improve content management significantly, especially for image-heavy sites or portfolios. By using native WordPress hooks, you get a fast, efficient solution without relying on extra plugins.

Want to display post IDs in the admin too? Check out the guide on showing post IDs in the WordPress dashboard without a plugin.

Join the Discussion
0 Comments  ]

Leave a Comment

To add code, use the buttons below. For instance, click the PHP button to insert PHP code within the shortcode. If you notice any typos, please let us know!

Savvy WordPress Development official logo