如果未设置特色图像,则显示核心的default.png

时间:2015-01-23 作者:WordPress Mike

我在使用获取特色图片URL时遇到了一个奇怪的问题wp_get_attachment_image_src. 如果未设置特征图像,则应返回null。然而,在这种情况下,其返回wp-includes/images/crystal/default.png.

我用来获取URL的代码是:

$thumb_id = get_post_thumbnail_id();
$thumb_url_array = wp_get_attachment_image_src($thumb_id,\'full\', true);
$thumb_url = $thumb_url_array[0]
这发生在WordPress 4.1中。

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

这是wp_get_attachment_image_scr 功能:

function wp_get_attachment_image_src($attachment_id, $size=\'thumbnail\', $icon = false) {

    // get a thumbnail or intermediate image if there is one
    if ( $image = image_downsize($attachment_id, $size) )
        return $image;

    $src = false;

    if ( $icon && $src = wp_mime_type_icon($attachment_id) ) {
        /** This filter is documented in wp-includes/post.php */
        $icon_dir = apply_filters( \'icon_dir\', ABSPATH . WPINC . \'/images/media\' );
        $src_file = $icon_dir . \'/\' . wp_basename($src);
        @list($width, $height) = getimagesize($src_file);
    }
    if ( $src && $width && $height )
        return array( $src, $width, $height );
    return false;
}
正如你所看到的,如果3-rd参数为true,那么它会在icons dir中查找该图像(我假设wp_mime_type_icon 退货default.png 还有一些插件add_filtericon_dir 未来wp-includes/images/crystal

只需删除示例中的第三个参数:$thumb_url_array = wp_get_attachment_image_src($thumb_id,\'full\');它应该会回来false 如果没有图像或图像url

结束

相关推荐