add_action( 'save_post', 'save_post_example' ); add_action( 'admin_notices', 'admin_notices_example' ); function save_post_example( $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 admin_notices_example() { // 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>You must select a featured image for your post.</p></div>'; delete_transient( 'has_post_thumbnail' ); } }