忽略一张特定图片的max_srcset_image_width过滤器

时间:2018-10-30 10:05:19

标签: wordpress responsive-images srcset

我将<div id="result"></div>输出的图像大小限制为768像素(默认情况下,它们限制为1600像素):

wp_get_attachment_image_srcset()

但是,我有一张图像想要恢复为默认的1600 max。

由于function set_max_srcset_image_width( $max_srcset_image_width, $sizes_array ) { return 768; } add_filter( 'max_srcset_image_width', 'set_max_srcset_image_width', 10, 2 ); 过滤器不包含任何其他用于标识图像的参数,或者您可能想要覆盖最大尺寸的事实,因此我不知道该怎么做。目前,这意味着我所有的图像都太大了,或者我的一张图像太小了。

2 个答案:

答案 0 :(得分:2)

请参阅@Joe McGill here的贡献

 function custom_max_srcset_image_width( $max_width, $size_array ) {

      $width = $size_array[0];

      if ( $width <= 640 ) { //Aribitrary - Change to meet your needs
        $max_width = 1600;
        return $max_width;
      }else{
        return 768;
     }

  add_filter( 'max_srcset_image_width', 'custom_max_srcset_image_width', 10, 2 );

答案 1 :(得分:0)

我解决了以下问题:

// Limit srcset images to 768 pixels
function set_max_srcset_image_width( $max_srcset_image_width, $sizes_array ) {
    return 768;
}
add_filter( 'max_srcset_image_width', 'set_max_srcset_image_width', 10, 2 );

然后,当我有一个要包含1,600个版本的图像而忽略768个最大值时,我这样做:

<img srcset="<?php echo wp_get_attachment_image_srcset( $attachment_id, 'large' ); ?>" />

其中large是1600像素的版本。

我永远无法弄清楚wp_get_attachment_image_srcset()中的第二个参数是为了什么,因为它似乎从未将函数限制为输出最大或最小尺寸。但是在这里的示例中,它确实满足了我的要求。