WordPress将图像大小调整为与上载图像相同的大小

时间:2015-08-24 作者:imrek

我正在写一个使用不同图像大小的主题。

以下是我的目标尺寸,它们是在WP Admin中的“设置”>“介质”下设置的:

enter image description here

下面是函数。缩略图支持的php代码:

$THUMBNAIL_SIZE = 320;
$MEDIUM_SIZE = 460;
$LARGE_SIZE = 1366;


if (function_exists(\'add_theme_support\')) { 
  add_theme_support(\'post-thumbnails\');

  set_post_thumbnail_size(        $THUMBNAIL_SIZE,  9999);
  add_image_size( \'medium-size\',  $MEDIUM_SIZE,  9999 ); 
  add_image_size( \'large-size\',  $LARGE_SIZE, 9999 );
}
如您所见,大小分别为320px宽、460px宽和1366px宽。

问题是,当我上传一个1366px宽的图像时,它会上传原始文件,并额外创建320px、460pxand 1366px 调整大小的图像。

E、 g。

UPLOAD:

一些图片。jpg(宽1366px)/ul>


OUTPUT (in/uploads/2015/08/)

一些图片。jpg公司

someimage-1366x937。jpg公司

someimage-460x316。jpg公司

someimage-320x220。jpg公司

我看到的是自动创建的someimage-1366x937。jpg是压缩的,我并没有真正预料到这一点。

在我之前的经验中,如果上传的图像与最大的指定大小相同,则不会创建重复。

我不需要这些与原始上传宽度相同的复制图像,它们只是在浪费存储空间。

我正在使用Wordpress 4.3。还没有添加插件,所以这肯定是Wordpress core正在做的事情,在更新版本4.3之前我还没有经历过这一点(我之前使用了版本4.0,在4.3发布后又开始开发WP)。

更新:

这是我的image editing process.

我总是将图像大小调整到所需的最大大小。有些帖子需要1366px宽的图像,有些帖子只需要460px宽的图像。

无论应用何种场景,我都希望Wordpress拍摄我上传的图像,而不是重新创建它的压缩副本。此外,它还必须创建所有较小的尺寸。

这意味着:

1366px上传-->创建460px和320px

  • 460px上传--->创建320px

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

    如果您上载的图像大小与WordPress安装中的大图像大小相同,请设置Large size 在设置->介质中设置为0x0或删除此行:

    add_image_size( \'large-size\',  $LARGE_SIZE, 9999 );
    

    EDIT #1:

    尝试添加此过滤器以删除原始图像:

    add_filter(\'wp_generate_attachment_metadata\', \'delete_fullsize_image\');
    function delete_fullsize_image($metadata) {
        $upload_dir = wp_upload_dir();
        $full_image_path = trailingslashit($upload_dir[\'basedir\']) . $metadata[\'file\'];
        $deleted = unlink($full_image_path);
    
        return $metadata;
    }
    
    上传后会删除原始图像,只保留生成的图像。

    EDIT #2:

    检查这两个插件(未测试),它们可能会帮助您自动完成:

    结束