如何在php中显示修改后的网址缩略图?

时间:2017-08-08 14:59:06

标签: php wordpress image post thumbnails

我正在使用WordPress内容保护插件,其功能可以在浏览器上禁用javascript时为图像添加水印。该功能正在对帖子中的图像进行如下处理... 首先,当它检测到浏览器不支持javascript时,它会执行重定向到无javascript php脚本。然后它获取当前帖子的内容,匹配内容中的任何/所有img src URL,修改img src URL(以便通过应用图像水印的php脚本解析图像),然后返回帖子内容修改后的网址。一切都好。

但是,我希望保护的大多数图像都被设置为特色图像(也就是后缩略图),因此不属于内容的一部分。我没有得到插件作者(付费插件)的任何支持。所以我想修改插件。

我知道wp_get_attachment_image_src()和the_post_thumbnail_url()作为获取特色图片URL的方法。但我无法找到任何方法来返回当前帖子的修改过的精选图片网址。

所以我所追求的是一个小脚本,对于当前的帖子/页面,允许我访问特色图像URL并返回修改后的URL以供浏览器显示(与获取,修改和返回the_content相同的概念)一篇文章)。我不想更改图片附件详细信息。有可能吗?

请不要对内容/图像保护的优点(或相当无效)发表评论/讨论。这完全是一个不同的讨论。

提前感谢您提供的任何支持!!

1 个答案:

答案 0 :(得分:1)

无法理解您的场景,但乍一看,您似乎应该查看过滤器wp_get_attachment_image_attributes以修改返回的缩略图后网址。

如果我们按你的说法分解:

  

但是我找不到任何方法来返回修改过的特色图片网址   目前的帖子。

从场景中获取$ attachment id / post-thumbnail;在循环中/或当is_feed()或is_single()或任何地方,何时需要保护输出。 (在没有您的上下文的情况下无法提供更多帮助)将图像传递到过滤器中:

function change_or_filter_the_url($attr, $attachment, $size){
    if(is_admin()) return $attr;
    if($size != 'post-thumbnail') return $attr;
    $attr['src'] = ... do stuff with the url here ...
    return $attr;
}
add_filter('wp_get_attachment_image_attributes', 'change_or_filter_the_url', 10, 3);

但我认为不仅仅是为了完成你的答案。看看这个关于Is it possible set a featured image with external image URL的帖子。它以某种方式实现相同的目标。您可以从所有代码中获得指向正确的方向以接近可理解的问题