Skip to content

Instantly share code, notes, and snippets.

@remkus
Last active December 14, 2015 09:18
Show Gist options
  • Save remkus/5063573 to your computer and use it in GitHub Desktop.
Save remkus/5063573 to your computer and use it in GitHub Desktop.
Force Featured Image
<?php
add_action( 'save_post', 'force_check_thumbnail') ;
add_action( 'admin_notices', 'show_thumbnail_error' );
/**
* Force Featured Image
*
* @link http://wpdevsnippets.com/require-post-thumbnail-uploaded-before-publishing/
* @param global $post_id
* @return
*/
function force_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', 'force_check_thumbnail' );
} else {
delete_transient( "has_post_thumbnail" );
}
}
function show_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 Post Thumbnail. Your Post is saved but it can not be published.</strong></p></div>";
delete_transient( "has_post_thumbnail" );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment