Falso positivo em has_post_thumbnail

Dentro do loop, para uma publicação (de tipo de publicação personalizada) que não possui uma imagem em destaque :

  1. has_post_thumbnail() (com ou sem especificado $post->ID ) está retornando true , enquanto
  2. get_the_post_thumbnail() , também com o nosso sem o $post->ID retorna uma string vazia.

O laço:

 $args = array( 'post_type' => 'customs', 'post_status' => 'publish', 'fields' => 'id', 'posts_per_page' => -1 ); $query = new WP_Query($args); while ( $query->have_posts() ) : $query->the_post(); has_post_thumbnail(); the_title(); // as expected the_excerpt(); // as expected endwhile; 

O CPT é definido da seguinte forma:

  $name = 'Custom'; $singular_name = 'Custom'; $slug = 'custom'; $menu_icon = 'universal-access'; // Declare args and apply filters $args = array( 'labels' => array( 'name' => $name, 'singular_name' => $singular_name, 'add_new' => __( 'Add New', 'total' ), 'add_new_item' => __( 'Add New Item', 'total' ), 'edit_item' => __( 'Edit Item', 'total' ), 'new_item' => __( 'Add New Custom Item', 'total' ), 'view_item' => __( 'View Item', 'total' ), 'search_items' => __( 'Search Items', 'total' ), 'not_found' => __( 'No Items Found', 'total' ), 'not_found_in_trash' => __( 'No Items Found In Trash', 'total' ) ), 'public' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', // 'comments', 'custom-fields', 'revisions', 'author', 'page-attributes', ), 'capability_type' => 'post', 'rewrite' => array( 'slug' => $slug, 'with_front' => false ), 'has_archive' => true, 'menu_icon' => 'dashicons-'. $menu_icon, 'menu_position' => 20, ); // Register the post type register_post_type( 'customs', $args ); } 

Embora eu possa obter resultados desejados com:

 if (get_the_post_thumbnail() !== ''): // display the thumbnail else: // some other option endif; 

Estou confiante de que essa não é a solução. Onde mais posso puxar para o que está causando esse resultado inesperado e indesejado?

Solutions Collecting From Web of "Falso positivo em has_post_thumbnail"

Eu testei no meu site de teste o código exato que você compartilhou acima, mas está funcionando bem para mim sem nenhum problema.

Parece que você está enfrentando o problema conforme descrito nesta página WordPress has_post_thumbnail () não está funcionando – Como corrigir o problema da imagem em destaque fantasma que você pode encontrar, especialmente se você estiver trabalhando com conteúdo migrado, ou por algum motivo seu database tem estranheza .

Então, em vez de has_post_thumbnail (), você pode usar o código como seguindo para verificar a existência da miniatura anexada para publicar.

 $img_url = wp_get_attachment_url( get_post_thumbnail_id() ); if ( ! empty( $img_url ) ) { // Do what you want to do if featured image is set to post }