我一直在网上寻找很长一段时间,以了解如何禁止WordPress创建多个缩略图。

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

我找不到任何解决方案。我想要这样做的原因是为了节省主机帐户上的空间。

评论

请关闭所有插件,然后切换到默认主题。然后,您应该能够将所有图像尺寸设置为0,并防止WP生成这些尺寸。如果这不起作用,请报告。如果可行,则存在一些插件或主题干扰。

#1 楼

要建立Max Yudin的答案,您应该使用intermediate_image_sizes_advanced过滤器,而不是image_size_names_choose。添加到functions.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

#2 楼

您还可以使用一个空数组来过滤middle_image_sizes。

 add_filter( 'intermediate_image_sizes', '__return_empty_array' );


#3 楼

如果我没记错,您必须先设置所有默认值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');


如果出现问题,请纠正我

P。 S.您需要一个插件来根据您的新设置将所有图像“另存为”。我可以推荐Regenerate Thumbnails插件。

P。 P. S.如果是单个选项,则必须选择一种方法:)。在新的(3.5.1)媒体窗口中,无法直接选择一种尺寸。

评论


嗨,麦克斯,我认为这是错误的过滤器,当您在媒体框中选择图像时,image_size_names_choose用于输出。

–维克
13年3月16日在16:15

是的,你是对的。感谢您提供的信息,现在我必须修改一些已经完成的内容。

– Max Yudin
13年3月17日在19:03

#4 楼

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



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

您还将注意到,当您插入图像时,“尺寸”下拉框将丢失。

评论


这行不通!

–阿里·哈希米(Ali Hashemi)
2014年9月11日下午13:07

@Pazis它在较旧版本的WordPress中有效,但似乎在4.0中不起作用

–乳木果
2014年9月12日下午6:15

#5 楼

对于具有激活的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)。

PS您可以通过安装Regenerate Thumbnails插件查看所有注册的大小。并且不要忘记在主题方面生成add_image_size()

#6 楼

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;

然后添加新的图像尺寸,例如...

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
}


经过测试!

评论


这样可以从“插入后发布”中删除尺寸,但Wordpress仍会生成缩略图!

–阿里·哈希米(Ali Hashemi)
2014年9月11日下午13:05

#7 楼

最近在一些站点上使用intermediate_image_sizes_advanced过滤器时遇到了麻烦。似乎在WP 5.3中,intermediate_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;
}