【问题标题】:need to override filter wp_get_attachment_thumb_url but not working需要覆盖过滤器 wp_get_attachment_thumb_url 但不起作用
【发布时间】:2015-09-02 04:43:40
【问题描述】:

我正在开发一个插件,它将主要图像和缩略图存储在云存储系统上。我使用 wp_get_attachment_url 过滤器来更改主 url 的目标,但附件随后使用与主 url 相同的修改路径,这是我不想要的,因为每个都需要是一个唯一的链接。

我尝试使用 wp_get_attachment_thumb_url 来为拇指实现相同的结果,但它根本不会触发。

//This works
add_filter( 'wp_get_attachment_url', array( $this, 'wp_get_attachment_url' ), 9, 2 );       

//This doesn't
add_filter( 'wp_get_attachment_thumb_url', array( $this, 'wp_get_attachment_thumb_url' ), 20, 2 );  

有什么建议 - 或者人们看到过这种行为吗?

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    有同样的问题,wp_get_attachment_thumb_url 过滤器没有触发。我们已经设置了自定义图像尺寸。如果您查看 wp_get_attachment_thumb_url 的函数代码,您会发现它在函数的中途调用了 image_downsize,如果该函数返回一个大小数组,它将第一个用作缩略图并返回它。

    因此,与其在代码块中调用您正在查看的过滤器,不如直接返回 image_downsize 过滤器的第一个结果。所以我最终为“image_downsize”添加了一个过滤器,而不是给它一个优先级

    add_filter( 'image_downsize', function($short_circuit, $attachment_id, $size){
        # code to get thumb url here ...
        $thumb_url = ...
    
        return array($thumb_url);
    }, 1, 2 );
    

    【讨论】:

      猜你喜欢
      • 2019-06-02
      • 1970-01-01
      • 2014-07-18
      • 2019-05-13
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      相关资源
      最近更新 更多