Ложный положительный на has_post_thumbnail

Внутри цикла для сообщения (пользовательского типа сообщения), который не имеет признака :

  1. has_post_thumbnail() (с или без указанного $post->ID ) возвращает true , тогда как
  2. get_the_post_thumbnail() , а также без нашего $post->ID возвращает пустую строку.

Петля:

 $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; 

CPT определяется следующим образом:

  $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 ); } 

Хотя я могу получить желаемый результат:

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

Я уверен, что это не решение. Где еще я могу ткнуть за то, что вызывает этот неожиданный и нежелательный результат?

Solutions Collecting From Web of "Ложный положительный на has_post_thumbnail"

Я тестировал на своем тестовом сайте точный код, который вы поделили выше, но он отлично работает для меня без каких-либо проблем.

Кажется, что вы столкнулись с проблемой, как описано на этой странице. WordPress has_post_thumbnail () не работает. Как исправить фантомную функцию с изображением, с которой вы можете столкнуться, особенно если вы работаете с переносимым контентом или по какой-то причине ваша база данных имеет странность ,

Поэтому вместо has_post_thumbnail () вы можете использовать следующий код, чтобы проверить наличие миниатюры, прикрепленной к сообщению.

 $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 }