我将<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 );
过滤器不包含任何其他用于标识图像的参数,或者您可能想要覆盖最大尺寸的事实,因此我不知道该怎么做。目前,这意味着我所有的图像都太大了,或者我的一张图像太小了。
答案 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()
中的第二个参数是为了什么,因为它似乎从未将函数限制为输出最大或最小尺寸。但是在这里的示例中,它确实满足了我的要求。