我正在写一个使用不同图像大小的主题。
以下是我的目标尺寸,它们是在WP Admin中的“设置”>“介质”下设置的:
下面是函数。缩略图支持的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
最合适的回答,由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:
检查这两个插件(未测试),它们可能会帮助您自动完成: