问题描述

我已经添加了一个图像大小使用这个:

add_image_size('property-featured', 484, 393, true);

它在过去一年的工作非常好,已经生成了约 1GB 的大小的图像,但是这种图像尺寸已经不再需要了。我想清除一年中创建的图像大小。

到目前为止,我已经删除了这行代码,但它并没有清理创建的图像。

删除这些图像的正确方法是什么?

最佳解决方案

我发现一个插件,为我做这件事:Additional image sizes (zui)

When you delete an image size that size will not be created for all NEW images you upload. However, images created for deleted sizes still exist on the server as well as the image attachment metadata for those sizes. This feature will physically delete those images from the server as well as the image attachment meta data for those sizes. Use this feature at your own risk. There is no undo.

更新

虽然插件工作奇迹,并做了大量的清理,它不能清除由 WordPress 从过去删除的图像留下的文件。我用这个 home brew 脚本清理了一些剩下的图像:

<?php
$files = find_all_files("/home/****/public_html/wp-content/uploads");
$files2 = array();

foreach($files as $key => $file) {
    if(1 == preg_match("#150xd+.jpg$#", $file)) {
        $files2[] = $file;
        unlink($file);
    }elseif(1 == preg_match("#300xd+.jpg$#", $file)) {
        $files2[] = $file;
        unlink($file);
    }elseif(1 == preg_match("#d+x300.jpg$#", $file)) {
        $files2[] = $file;
        unlink($file);
    }elseif(1 == preg_match("#d+x150.jpg$#", $file)) {
        $files2[] = $file;
        unlink($file);
    }elseif(1 == preg_match("#d+x1024.jpg$#", $file)) {
        $files2[] = $file;
        unlink($file);
    }
}


print_r($files2);


function find_all_files($dir)
{
    $root = scandir($dir);
    foreach($root as $value)
    {
        if($value === '.' || $value === '..') {continue;}
        if(is_file("$dir/$value")) {$result[]="$dir/$value";continue;}
        foreach(find_all_files("$dir/$value") as $value)
        {
            $result[]=$value;
        }
    }
    return $result;
}
?>

次佳解决方案

我使用 http://wordpress.org/extend/plugins/regenerate-thumbnails/重新创建我的缩略图,据我所知,它删除所有的图像大小,然后重新生成它们。这可能是一个缓慢的,取决于多少图像+图像大小被重新扫描。

另一种方法是通过 SSH 执行此操作,并使用以下命令找到它们:

find ./uploads/*  -iname '*-484x393.*' -ls

然后运行如下命令:

find ./uploads/*  -iname '*-484x393.*' -exec rm {} ;

请确保您在运行此命令之前备份所有内容。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。