为什么wp_Get_Attach_IMAGE_ATTRIBUTES中缺少arugment?

时间:2017-02-07 作者:user3415011

我有一个功能:

  function azu_post_thumbnail_responsive_size($attr, $attachment, $size) {

    if ($size === \'az_medium\') {

      $attr[\'sizes\'] = \'(max-width: 639px) 100vw, (max-width: 1023px) 50vw, 334px\';

    } else if ($size === \'az_large\') {

      $attr[\'sizes\'] = \'(max-width: 1023px) 100vw, 717px\';

    }

    return $attr;

  }

  add_filter(\'wp_get_attachment_image_attributes\', \'azu_post_thumbnail_responsive_size\', 10 , 3);
这在WP4上运行良好。4+,但在此之前,当没有引入响应图像时,我有以下错误:

警告:azu\\u post\\u thumbnail\\u responsive\\u size()缺少参数3

有人能帮我吗?

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

第三个参数$size 在WordPress 4.1中引入。在此之前,只有$attr$attachment.

因此,要使其在WP 4.1之前工作,您需要为$size. 因为默认大小为thumbnail, 您可以在过滤器挂钩的函数定义中使用它。

因此,请按如下方式修改您的代码:

    function azu_post_thumbnail_responsive_size($attr, $attachment, $size = \'thumbnail\') {
        if ($size === \'az_medium\') {
            $attr[\'sizes\'] = \'(max-width: 639px) 100vw, (max-width: 1023px) 50vw, 334px\';
        }
        else if ($size === \'az_large\') {
            $attr[\'sizes\'] = \'(max-width: 1023px) 100vw, 717px\';
        }
        return $attr;
    }

    add_filter(\'wp_get_attachment_image_attributes\', \'azu_post_thumbnail_responsive_size\', 10 , 3);
现在它适用于所有版本的WordPress。

注意:显然,任何与$size 参数的功能与pre&;类似;发布WP 4.1。但是,至少不会出现错误。

相关推荐

Remove <p></p> after images

我对<p></p> 出现在my之后的标记<img....>. 以下是我在本地主机上查看生成的页面时显示的内容。。。<img src=\"/wp-content/themes/wunderful/assets/images/feedback-danielle.png\" alt=\"Danielle Johnson Deal Town FC Treasurer\"> <p></p> 请注意随机生成的<p>&