X

Como exigir uma imagem em destaque antes de publicar uma postagem

Snippets by IsItWP

Está procurando uma maneira de exigir uma imagem em destaque antes de publicar uma postagem? Esse snippet exigirá que você tenha adicionado uma imagem em destaque antes que sua postagem possa ser publicada. Se você tentar publicar uma postagem sem uma imagem em destaque depois de adicionar esse snippet, receberá esta mensagem: “Você deve selecionar a imagem em destaque. Sua postagem foi salva, mas não pode ser publicada.”

Instruções:

Tudo o que você precisa fazer é adicionar esse código ao arquivo functions.php do seu tema ou em um plug-in específico do 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" );
    }

}

Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar/colar corretamente trechos de código no WordPress, para não danificar acidentalmente seu site.

Se você gostou desse snippet de código, considere dar uma olhada em nossos outros artigos no site, como: 7 Best WordPress Gallery Plugins Compared.

Comentários   Deixe uma resposta

  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?

Adicionar um comentário

Ficamos felizes por você ter optado por deixar um comentário. Lembre-se de que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

WordPress Launch Checklist

A lista de verificação definitiva para o lançamento do WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento de seu próximo site WordPress em um ebook prático.
Sim, envie-me o livro eletrônico gratuito grátis!