有没有可能在激活光子的情况下获取本地图像URL?

时间:2014-02-23 作者:Roc

所以我使用了光子,它帮助我提高了加载速度。

虽然这很好,但我现在面临一个CORS错误,因为我使用的是模糊。js来模糊我的单篇文章的背景图像。

它引用的图像是特征图像的“缩略图”大小。由于特征图像是通过光子获取的,因此我收到了“无法访问本地图像”错误。

这是我当前获取缩略图的代码。

<?php $feat_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), \'blog-widget\'); ?>

<style>
  span.img-pxl {
    background-image: url(\'<?php echo $feat_image_url[0] ?>\');
  }
</style> 
我只想专门针对缩略图图像从我自己的站点加载,而不是从光子加载。

这可能吗?我将特色URL更改为光子URL的唯一参考是:http://jetpack.me/2013/07/17/use-photon-to-serve-post-thumbnails-with-custom/

虽然我不知道如何使用我自己网站的URL来扭转这种局面。

谢谢Roc。

所以我找到了一个黑客解决方案——尽管我知道这不是正确的方法。

function remove_jetpack_image_downsize() {
    global $post;
    if (is_single()) return true; else return false;
}
add_filter(\'jetpack_photon_override_image_downsize\', \'remove_jetpack_image_downsize\');
现在,它删除了我单个帖子上的所有光子URL,但这不是我试图实现的解决方案。我只需要删除50x50图像的光子URL。如果我使用上面的函数,它会移除600x600图像、300x300图像等上的光子,这是我绝对不想要的。

是否有建议,我可以仅对使用此代码的所有图像禁用光子:wp_get_attachment_image_src( get_post_thumbnail_id(), \'blog-widget\');

选项2:

因此,我可以获得全尺寸的特色图像URL,如下所示:

$bkg_image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single_post_thumnail\' );
并返回我网站的url(即www.mysite.com/image.jpg)

但如果我将“single\\u post\\u缩略图”更改为我注册的图像大小之一,如下所示:

$bkg_image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'blog-widget\' );
它返回光子URL(即i0.wp.com/image.jpg)。

有了上面的URL,我是否可以用我正在尝试获取的较小大小的图像作为图像URL的目标?甚至可以通过参数裁剪特征图像。

谢谢Roc。

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

肯定是一个黑客解决方案,但迄今为止我所知道的唯一一个可行的。。。

<?php $bkg_image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single_post_thumbnail\' ); ?>

<style>
  span {
    background-image: url(\'<?php echo preg_replace("/\\.jpg.*/", "-50x50.jpg", $bkg_image[0]); ?>\');
  }
</style>
基本上,我正在获取非光子URL,并对结束图像URL进行字符串替换。jpg“至”-50x50。jpg’(这是博客小部件图像大小的大小)

如果有更好的解决方案,那就不那么麻烦了,请分享!

我能想到的唯一问题是何时扩展不可用。jpg,但是。png或gif。如果有办法在最后一个“.”之前添加“-50x50”,我想这会有所帮助。

谢谢Roc。

当然,发布并找到替代解决方案:

要在扩展名结束之前添加字符,请执行以下操作:https://stackoverflow.com/questions/2429611/regex-how-to-insert-string-before-file-extension

<?php 
  $bkg_image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single_post_thumbnail\' );  
  $extension_pos = strrpos($bkg_image[0], \'.\'); // find position of the last dot, so where the extension starts
  $thumb = substr($bkg_image[0], 0, $extension_pos) . \'-50x50\' . substr($bkg_image[0], $extension_pos);
?>

<style>
  span {
    background-image: url(\'<?php echo $thumb; ?>\');
  }
</style>
这是我在上面发布的第一个答案的另一个解决方案,关于如何在扩展之前添加字符串。。。光子解决方案没有一个。

结束

相关推荐