Ich habe ein Plugin gefunden, das dies für mich erledigt: Zusätzliche Bildgrößen (zui)
Wenn Sie eine Bildgröße löschen, wird diese Größe nicht für alle NEUEN Bilder erstellt, die Sie hochladen. Auf dem Server sind jedoch weiterhin Bilder vorhanden, die für gelöschte Größen erstellt wurden, sowie die Metadaten für Bildanhänge für diese Größen. Diese Funktion löscht diese Bilder physisch vom Server sowie die Metadaten der Bildanhänge für diese Größen. Verwenden Sie diese Funktion auf eigenes Risiko. Es gibt kein Rückgängigmachen.
Aktualisieren
Während das Plugin Wunder wirkte und viel bereinigte, konnte es die Dateien, die von Bildern zurückgelassen wurden, die in der Vergangenheit aus WordPress entfernt worden waren, nicht bereinigen. Ich habe dieses Home Brew-Skript verwendet, um einige der verbleibenden Bilder zu bereinigen:
<?php
$files = find_all_files("/home/****/public_html/wp-content/uploads");
$files2 = array();
foreach($files as $key => $file) {
if(1 == preg_match("#150x\d+\.jpg$#", $file)) {
$files2[] = $file;
unlink($file);
}elseif(1 == preg_match("#300x\d+\.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;
}
?>