从wp_Get_Attach_Image_src更改图像的URL

时间:2014-02-27 作者:kel

我用wp_get_attachment_image_src() 并希望将这些图像卸载到CDN。

是否有一个过滤器可以获取URL并对其进行更改?

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

不,不严格。你可以check the source 并确保没有挂钩可以让您更改URL。

您还应该注意到这段有趣的代码:

512         if ( $image = image_downsize($attachment_id, $size) )
513                 return $image;
跟踪跟踪到here 你会发现:

141         // plugins can use this to provide resize services
142         if ( $out = apply_filters( \'image_downsize\', false, $id, $size ) )
143                 return $out;
如果你陷入image_downsize...

add_filter(
  \'image_downsize\',
  function ($f,$id,$size) {
    // your own downsize function

  },
  10,3
);
wp_get_attachment_image_src(4);
。。。您应该能够返回所需的任何URL,但这意味着您将需要或多或少地复制image_downsize() 当然会有变化。

SO网友:eyal_123

只是想澄清一下,从4.3.0开始,任何人都可能在将来偶然发现这一点a filter to alter the image src 确实存在:wp_get_attachment_image_src

function alterImageSRC($image, $attachment_id, $size, $icon)
{        
    $image[0] = \'http://newimagesrc.com/myimage.jpg\';

    return $image;
}
add_filter(\'wp_get_attachment_image_src\', \'alterImageSRC\', 10, 4);
Note: 要过滤图像的srcset,请使用:wp_calculate_image_srcset

结束

相关推荐

W3总缓存、CDN和自定义发布类型

我安装了W3 Total Cache,这样我就可以将实时网站中的图像提供给本地开发版本。除了URL重写似乎没有在自定义帖子类型页面上发生之外,一切似乎都按预期进行。我没有打开缓存,CDN主机名替换在其他页面上运行得很好。有什么想法吗?