Are you looking for a way to require a featured image before you can publish a post? This snippet will require that you have added a featured image before your post can be published. If you try to publish a post without a featured image after adding this snippet, you will receive this message: “You must select Featured Image. Your Post is saved but it can not be published.”
Instructions:
All you have to do is add this code to your theme’s functions.php file or in a site-specific plugin:
add_action('save_post', 'wpds_check_thumbnail'); add_action('admin_notices', 'wpds_thumbnail_error'); function wpds_check_thumbnail($post_id) { // change to any custom post type if(get_post_type($post_id) != 'post') return; if ( !has_post_thumbnail( $post_id ) ) { // set a transient to show the users an admin message set_transient( "has_post_thumbnail", "no" ); // unhook this function so it doesn't loop infinitely remove_action('save_post', 'wpds_check_thumbnail'); // update the post set it to draft wp_update_post(array('ID' => $post_id, 'post_status' => 'draft')); add_action('save_post', 'wpds_check_thumbnail'); } else { delete_transient( "has_post_thumbnail" ); } } function wpds_thumbnail_error() { // check if the transient is set, and display the error message if ( get_transient( "has_post_thumbnail" ) == "no" ) { echo "<div id='message' class='error'><p><strong>You must select Featured Image. Your Post is saved but it can not be published.</strong></p></div>"; delete_transient( "has_post_thumbnail" ); } }
Note: If this is your first time adding code snippets in WordPress, then please refer to our guide on how to properly copy / paste code snippets in WordPress, so you don’t accidentally break your site.
If you liked this code snippet, please consider checking out our other articles on the site like: 7 Best WordPress Gallery Plugins Compared.
Hi! does it works for Woocommerce featured image?
can we make also for post title
You may be able to check if the title has been added by using the get_the_title() function.
This is creating so many unwanted auto drafts in the system
Hi Visal,
Why is creating auto-drafts?
Did you solve this problem?
Regards
Thanks
Hey Kevin. I am creating a custom functions plugin where I added this snippet and it seems to work fine until I go to delete a draft/post. I am not able to delete as it just gives me the “You must select a Featured Image. Your Post is saved but it can not be published.” I have to remove the code to be able to delete a post.
I put the function (wpds_check_thumbnail)’s code inside of:
if ( ‘trash’ != get_post_status( $post_id ) ) { //Code here }
Great! This is quite useful for me at the moment. Is this adjustable to only work on a certain post-type or category?