Require authors to set featured image for post Require authors to set featured image for post wordpress wordpress

Require authors to set featured image for post


You need to hook the Publish Action in a custom PlugIn you write. Although this is to require a title, this should get you started, you just need to check if a featured image was assigned.

add_action( 'pre_post_update', 'bawdp_dont_publish' );function bawdp_dont_publish(){    global $post;    if ( strlen( $post->title ) < 10 ) {        wp_die( 'The title of your post have to be 10 or more !' );    }}

Look at (has_post_thumbnail( $post->ID )) to determine if a post has a featured image.


Given Gary's example above, I've written the following to my functions.php file:

function featured_image_requirement() {     if(!has_post_thumbnail()) {          wp_die( 'You forgot to set the featured image. Click the back button on your browser and set it.' );      } }add_action( 'pre_post_update', 'featured_image_requirement' );

I'd much rather see this in a plugin as well - there's one called Mandatory Field but it doesn't work with scheduled posts. Both are not really eloquent solutions.


you can use a plugin

https://wordpress.org/plugins/require-featured-image/

or you can copy and paste below code in your wordpress theme functions.php file:

<?php/** * Require a featured image to be set before a post can be published. */add_filter( 'wp_insert_post_data', function ( $data, $postarr ) {    $post_id              = $postarr['ID'];    $post_status          = $data['post_status'];    $original_post_status = $postarr['original_post_status'];    if ( $post_id && 'publish' === $post_status && 'publish' !== $original_post_status ) {        $post_type = get_post_type( $post_id );        if ( post_type_supports( $post_type, 'thumbnail' ) && ! has_post_thumbnail( $post_id ) ) {            $data['post_status'] = 'draft';        }    }    return $data;}, 10, 2 );add_action( 'admin_notices', function () {    $post = get_post();    if ( 'publish' !== get_post_status( $post->ID ) && ! has_post_thumbnail( $post->ID ) ) { ?>        <div id="message" class="error">            <p>                <strong><?php _e( 'Please set a Featured Image. This post cannot be published without one.' ); ?></strong>            </p>        </div>    <?php    }} );