Remove image of srcset

时间:2019-03-24 作者:sat_user

一些wordpress插件创建了我不需要的新缩略图大小。

我已创建筛选器

add_filter( \'intermediate_image_sizes_advanced\', 

// Remove default image sizes here.
function prefix_remove_default_images( $sizes ) {
    unset( $sizes[\'sow-carousel-default\']); // 272px x 182px set by widgets for siteorigin (carousel)
    return $sizes;
}
取消设置这些新缩略图大小,而不创建这些图像。这样就行了。

但是数据srcset

<img width="270" height="180" src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMjcwIDE4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48L3N2Zz4=" class="attachment-post-thumbnail size-post-thumbnail lazyload wp-post-image" alt="Ballonnen met gas gevuld aan plafond" title="Ballonnen voor je huwelijk kopen" sizes="(max-width: 270px) 100vw, 270px" data-srcset="http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-270x180.jpg 270w, http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-600x400.jpg 600w, http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-300x200.jpg 300w, http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-768x512.jpg 768w, http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-1024x682.jpg 1024w, http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-770x515.jpg 770w, http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-272x182.jpg 272w, http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-110x73.jpg 110w" data-src="http://wpdyw.localhost/wp-content/uploads/2017/10/ballonnen-met-gas-gevuld-aan-plafond-270x180.jpg" />
仍然在寻找这个维度(在这个特殊的例子中是272 x 182),它给了我一个404,因为图像没有生成。

如何从此数据集禁用此特定图像?

我只知道如何隐藏数据srcset,但这会隐藏所有数据:

add_filter( \'wp_calculate_image_srcset_meta\', \'__return_empty_array\' );
我只想去掉特定的缩略图。这有可能吗??

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

如果查看core,该过滤器的应用方式如下:

$image_meta = apply_filters( \'wp_calculate_image_srcset_meta\', $image_meta, $size_array, $image_src, $attachment_id );
而不是使用__return_empty_array 您需要向该过滤器中添加一个自定义函数,以删除要删除的srcset大小。像这样的。

function my_srcset_function($image_meta) {
    if (!is_array($image_meta)) {
        return $image_meta;
    }
    if (!empty($image_meta[\'sizes\']) && !empty($image_meta[\'sizes\'][\'sow-carousel-default\'])) {
        unset($image_meta[\'sizes\'][\'sow-carousel-default\']);
    }
    return $image_meta;
}

相关推荐

为内置钩子调用do_action和Apply_Filters是否安全?

我正在开发一个插件,它需要复制一些内置的WordPress逻辑。(此逻辑不能用任何内置方法调用,也不能独立连接到。)在这个动作序列中,WordPress的正常行为是调用动作挂钩(do_action(\'wp_login\', ...)) 和过滤器挂钩(apply_filters(\'login_redirect\', ...)).如果在对应于在Core中调用它们的时间点调用它们,那么直接从我的插件调用这些内置钩子是否安全(并且是可以接受的做法)?或者,其他与此相关的开发人员期望在非常特定的时间执行操作的风