HAS_POST_THMBAILE()在计划的发布中返回FALSE

时间:2015-01-09 作者:Andrew

我正在对自定义WP模板进行一些更改,遇到了一个奇怪的问题。已发布的帖子效果绝对不错,但当您查看预定帖子时,特色图片将消失。

就好像根本没有特色图片has_post_thumbnail() 返回false。下面是我正在使用的相关代码,相对简单的东西:

while (have_posts()) : the_post();
  if (has_post_thumbnail($post->ID)) {
    $featuredImage = wp_get_attachment_url(get_post_thumbnail_id($post->ID));
  }
}
再说一次,这在已发布的帖子上效果很好,但一旦我设定了未来的日期,图像就不再出现了。奇怪的是,根据发布日期,图像会被不同的对待,是否有任何WP在预定帖子和实时帖子上的变化会导致这种情况?

2 个回复
最合适的回答,由SO网友:Andrew 整理而成

事实证明has_post_thumbnail() 失败是因为get_post_meta() 正在为计划的帖子返回空帖子。我仍然不知道为什么,但如果其他人有这个问题,我的解决方法是创建一个新函数来获取特征图像ID,而不依赖于get_post_meta():

function get_featured_image_id($postID) {
    global $wpdb;
    $data = $wpdb->get_results($wpdb->prepare("SELECT meta_value FROM wp_postmeta WHERE post_id = %d AND meta_key = \'_thumbnail_id\'", $postID));
    if (!empty($data[0]->meta_value)) {
        return $data[0]->meta_value;
    }
}
然后,您可以使用以下行在模板中获取特色图像URL:

wp_get_attachment_url(get_featured_image_id($post->ID))

SO网友:Irfan

太简单了

while (have_posts()) : the_post();
    if (has_post_thumbnail($post->ID)) {
        $featuredImage = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID,\'full\'));
        echo $featuredImage;
    }
}

结束

相关推荐

Images not rendering

我有一个烘焙博客,最近我更改了url。我现在的问题是,当我将图像添加到帖子或图书馆时,它们不会显示/呈现。上载步骤通过OK,但图像不会渲染。你能帮忙吗,我只是不知道我哪里做错了。