X

Comment exiger une image en vedette avant de publier un article ?

Snippets by IsItWP

Vous cherchez un moyen d’exiger une image vedette avant de pouvoir publier un article ? Cet extrait exigera que vous ayez ajouté une image en vedette avant de pouvoir publier votre article. Si vous essayez de publier un message sans image vedette après avoir ajouté cet extrait, vous recevrez le message suivant : “Vous devez sélectionner l’image en vedette. Votre message est enregistré mais il ne peut pas être publié.”

Instructions:

Il vous suffit d’ajouter ce code dans le fichier functions.php de votre thème ou dans un plugin spécifique à votre site:

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 : Si c’est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière de copier/coller correctement des extraits de code dans WordPress, afin de ne pas endommager accidentellement votre site.

Si vous avez aimé cet extrait de code, n’hésitez pas à consulter nos autres articles sur le site comme : 7 meilleurs plugins WordPress de galerie comparés.

Commentaires   laisser une réponse

  1. Hi! does it works for Woocommerce featured image?

  2. can we make also for post title

    1. You may be able to check if the title has been added by using the get_the_title() function.

  3. This is creating so many unwanted auto drafts in the system

    1. Hi Visal,
      Why is creating auto-drafts?
      Did you solve this problem?
      Regards

  4. Thanks

  5. 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.

    1. I put the function (wpds_check_thumbnail)’s code inside of:

      if ( ‘trash’ != get_post_status( $post_id ) ) { //Code here }

  6. Great! This is quite useful for me at the moment. Is this adjustable to only work on a certain post-type or category?

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !