上传后删除原来的大尺寸图片,只留下3张被媒体库处理过的图片

时间:2011-05-19 作者:jimilesku

我需要知道是否有可能以某种方式删除通过重力表单上传的原始图像:post image-post field?!根据目前的情况,我收到了4张图片。1份原稿(可以是用户电脑上的任何内容——最多4MB,这会使服务器混乱),3份Wordpress根据规格(缩略图、中号、大号)创建的原稿。我想有能力当用户上传的“原始大图像”被删除后,上传,并在媒体画廊留下3剩余?!。这将极大地改善我的服务器上的存储。

干杯

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

这个怎么样:

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;
}
不是百分之百确定没有主图像一切都会正常工作,但它做到了。您将无法重新生成缩略图/大小,因为这需要主图像。

编辑:我刚刚重读了这个问题,我注意到你希望只有当人们通过表单上传时才会发生这种情况。对我来说必须提前,以上代码将删除上传的任何附件。我想你所需要做的就是找到某种方法来检查上传是否是通过你的重力表进行的。希望它对你有帮助。

结束