WP_GET_ATTACHING_IMAGE_src()没有返回我想要的内容

时间:2013-07-30 作者:JMau

我遇到了一个我无法解决的恼人问题:

if( $meta1 = \'\' && $meta2 = \'\' ) { 
$image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), my_own_size_function());
echo  $image_attributes[0];
} elseif(  $meta1 != \'\' ) { 
    echo $meta1; 
} elseif ( $meta2  != \'\' ){
    $image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), my_own_size_function() );
    echo $image_attributes[0];
} else {
    echo "ko";
}
当我打印时\\rmy_own_size_function() 我得到如下数组:

Array
(
     [0] => 600
     [1] => 400
)
但当我打印时$image_attributes我得到了另一个结果:

Array
(
    [0] => http://localhost/wordpress/wp-content/uploads/2013/07/my_image.jpg
    [1] => 200
    [2] => 150
    [3] => 
)
你知道这是什么原因吗?提前谢谢。

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

下面的内容完全基于过去15分钟左右的实验,所以我不认为它是规范的,但。。。

wp_get_attachment_image_src() 使用image_downsize() 函数,它将尝试查找并返回image closest in size to the supplied size values. 如果您尝试使用已知的图像大小(查看保存到的实际图像wp-content/uploads) 你会明白我的意思。尽管名称不同,它有时会返回更大的图像,但数组的高度和宽度分量应设置为提供的值,如果这些值非常不准确,则应尝试使用缩放近似值(看起来如此)。我不知道你的情况中是否发生了这种“缩放”,但它可能是,而且似乎是可能的。

让我举个例子。我有一个图像,保存为150x150、293x300和全尺寸。这

var_dump(wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), array(20, 20)));
。。。返回一个具有150x150图像和我提供的大小(20x20)的数组。然而这。。。

var_dump(wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), array(200, 250)));
。。。返回150x150图像URL,但大小为200x204。这不是我提供的。大小值已通过某些算法更改。经过进一步调查image_constrain_size_for_editor 是更有可能的候选人。

您还可以检查是否有任何功能应用于image_downsize 过滤器,因为这将完全劫持函数。

SO网友:Pontus Abrahamsson

更改功能my_own_size_function(); 到array(600, 400)

$image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), array(600, 400));

结束

相关推荐

Resize uploaded images

Possible Duplicate:Resizing all images 我有一个我建立的新闻门户,客户想要不同大小的特色图片。我已经准备好了我想要的第一个尺寸,他们已经发布了大约200多篇帖子,都准备好了这个尺寸。现在,如果我改变大小,它只会在新帖子上改变/或重新上传当前的特色图片(手工操作太多了)。我的问题是,有没有办法调整上传图像的大小?