【问题标题】:How to display post thumbnail with modified url in php?如何在 php 中显示修改后的 url 的帖子缩略图?
【发布时间】:2018-01-16 05:28:01
【问题描述】:

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

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

我知道 wp_get_attachment_image_src() 和 the_post_thumbnail_url() 是获取特色图片 URL 的方法。但是我找不到任何方法可以为当前帖子返回修改后的特色图片 URL。

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

请不要对内容/图像保护的优点(或更无用)进行讨论/讨论。那是完全不同的讨论。

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

【问题讨论】:

    标签: php wordpress image post thumbnails


    【解决方案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 的线程。它以某种方式实现相同的目标。您可能会从所有代码中指出正确的方向,以解决一个可以理解的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 2017-08-02
      • 2013-07-02
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      相关资源
      最近更新 更多