如何禁止WordPress创建缩略图?

时间:2013-03-16 作者:Daniel

我已经在网上搜索了很长一段时间了,关于如何禁止WordPress创建多个缩略图。

我在大多数教程中看到,在媒体部分将所有图像设置为0。我已经这样做了,但转到我的上传文件夹,它仍然会创建多个图像。

我找不到任何解决办法。我希望这样做的原因是为了节省主机帐户的空间。

9 个回复
SO网友:Wyck

要基于Max Yudin的答案,您应该使用intermediate_image_sizes_advanced 过滤器,而不是image_size_names_choose. 添加到函数。php

function add_image_insert_override($sizes){
    unset( $sizes[\'thumbnail\']);
    unset( $sizes[\'medium\']);
    unset( $sizes[\'large\']);
    return $sizes;
}
add_filter(\'intermediate_image_sizes_advanced\', \'add_image_insert_override\' );
我认为另一个更简单的选择是转到设置-->介质,并将每个框的宽度和高度设置为0

SO网友:Chris_O

还可以使用空数组过滤中间的\\u image\\u大小。

 add_filter( \'intermediate_image_sizes\', \'__return_empty_array\' );

SO网友:shea

访问WordPress仪表板的“设置”>“媒体”页面。在“图像大小”部分下,将所有值更改为0。

Media Settimgs

保存更改。这将阻止WordPress为您上传的每个图像生成缩略图、中尺寸和大尺寸。

您还会注意到,在插入图像时,“大小”下拉框丢失。

SO网友:Max Yudin

如果我没记错的话你必须unset 所有默认值并添加新的Size 有:

    <?php
function mxdCustomImageSizes($sizes) {
    unset( $sizes[\'thumbnail\']);
    unset( $sizes[\'medium\']);
    unset( $sizes[\'large\']);
    unset( $sizes[\'full\'] );

    $myimgsizes = array(
        \'full-size\' => __( \'Full Size\' )
    );
    if( !empty($sizes) )
        return array_merge($sizes, $myimgsizes);
    else
        return $myimgsizes;
}
add_filter(\'intermediate_image_sizes_advanced\', \'mxdCustomImageSizes\');
然后添加full-size 大小为99999x99999 正下方的尺寸几乎令人难以置信,全尺寸也是如此。

add_image_size( \'full-size\', 99999, 99999, false );
如果出了什么问题,请纠正我

P、 你需要一个插件来根据你的新设置“另存为”你的所有图像。我可以推荐重新生成缩略图插件。

P、 另外,当这是一个选项时,无论如何,你都必须从中选择一个:)。在新(3.5.1)介质窗口中,无法直接选择一种尺寸。

SO网友:Bogdan

对于WooCommerce激活插件的最新WordPress,请使用以下代码:

function add_image_insert_override($sizes){
    unset($sizes[\'thumbnail\']);
    unset($sizes[\'medium\']);
    unset($sizes[\'medium_large\']);
    unset($sizes[\'large\']);
    unset($sizes[\'1536x1536\']);
    unset($sizes[\'2048x2048\']);        
    unset($sizes[\'blog-isotope\']);
    unset($sizes[\'product_small_thumbnail\']);
    unset($sizes[\'shop_catalog\']);
    unset($sizes[\'shop_single\']);
    unset($sizes[\'shop_single_small_thumbnail\']);
    unset($sizes[\'shop_thumbnail\']);
    unset($sizes[\'woocommerce_thumbnail\']);
    unset($sizes[\'woocommerce_single\']);
    unset($sizes[\'woocommerce_gallery_thumbnail\']);
    return $sizes;
}
add_filter(\'intermediate_image_sizes_advanced\', \'add_image_insert_override\' );
add_filter(\'max_srcset_image_width\', create_function(\'\', \'return 1;\'));
但如果你留下一个小缩略图就好了(thumbnail) 和一个中等大小的图像(medium).

P、 您可以通过安装Regenerate Thumbnails 插件。别忘了add_image_size() 在主题端生成。

SO网友:l2aelba

function remove_default_image_sizes( $sizes) {
    unset($sizes[\'thumbnail\']);
    unset($sizes[\'medium\']);
    unset($sizes[\'large\']);
    return $sizes;
}
add_filter(\'intermediate_image_sizes_advanced\',\'remove_default_image_sizes\');
别忘了return $sizes; 像这样。

然后add new image sizes 喜欢

if(function_exists(\'add_image_size\')){
    add_image_size(\'my_100x100_crop\',100,100,true); // Crop mode
    add_image_size(\'my_100x100_resize\',100,100); // Resize mode
}

Tested!

SO网友:jamesfacts

我在使用intermediate_image_sizes_advanced 最近在几个网站上进行筛选。类似于WP 5.3intermediate_image_sizes 更可靠。

我建议您消除以下不需要的尺寸:

add_filter(\'intermediate_image_sizes\', \'remove_default_img_sizes\', 10, 1);

function remove_default_img_sizes($sizes)
{
    $targets = [\'medium\', \'medium_large\', \'thumbnail\'];

    foreach ($sizes as $size_index=>$size) {
        if (in_array($size, $targets)) {
            unset($sizes[$size_index]);
        }
    }

    return $sizes;
}

SO网友:K. Kilian Lindberg

由于Wordpress经常安装WooCommerce,因此在将其放入函数时会禁用图像再生。php(例如,在子主题中或通过代码段插件,因为它可能会在更新时被覆盖)。

add_filter( \'woocommerce_background_image_regeneration\', \'__return_false\' );

SO网友:Endrian

如果要删除所有内容,只需返回一个空数组。

function remove_thumbnail_image_sizes($sizes) {
    return [];
}
add_filter(\'intermediate_image_sizes_advanced\',\'remove_thumbnail_image_sizes\');

结束

相关推荐

How to get gallery images?

我在wordpress的帖子中上传了一些图片(例如,帖子#1和帖子#2)。现在我创建了一个新帖子(例如,帖子#3),在这篇帖子中我插入了WordPress 3.5图库,我没有在帖子#3中上传任何图像,而是使用了帖子#1和帖子#2中的图像。现在在帖子#3中,我想获得这些图片的链接,但我似乎无法获得。我正在使用以下代码:$attachments = get_children( array(\'post_parent\' => get_the_ID(), \'post_type\' => \'att