Bu sorun ile birçok yerde karşılaştım
kullanılan tema malumunuz birçok gereksiz resim oluşturur . başka bir temaya geçince bu resimlerin çoğu sunucuda gereksiz yer işgal eder aşağıda paylaştığım dosya bu dosyaları bulup silmemeye yarar.
kullanımı.
ilk önce resimlerinizin yedeğini alın !
yeni tema yüklenince kullanılmayan resimleri tespit edin
bunların adlarını bir yere not alın örnek resim-100x200.jpg
aşağıda verdiğim kodu sunucunuzun /wp-content/uploads/ klasörüne sil.php adı ile kayıt edin .
kullanıcı adı şifre kodun içinde yazıyor değiştirin
giriş yapın ve not aldığınız kalıntı resimlerin ismini aratın ve silin
Örnek: resim-100x200.jpg diyelim resimleriniz var arama kısmına 100x200 yazıp ve aratırsanız içinde 100x200 olan tüm resimler listelenecektir
Not: güvenliğiniz için bu dosyayı sunucunuzda işiniz bitince silin...
<?php
session_start(); 

if(isset($_POST['logout'])) {
  session_destroy();
  header('Location: ' . $_SERVER['PHP_SELF']);
}

// üye giriş işlemi
if(isset($_POST['login'])) {
  $username = 'kullanıcı'; // kullanıcı adı
  $password = 'şifre';     // şifre
  if($_POST['username'] == $username && $_POST['password'] == $password) {
    $_SESSION['logged_in'] = true; 
    header('Location: ' . $_SERVER['PHP_SELF']); 
  } else {
    echo '<div class="alert-gir">';
    echo '<p>Kullanıcı adı veya şifre hatalı.</p>';
    echo '</div>';
  }
}

if(isset($_SESSION['logged_in'])) {
  echo '<div class="logout-form">';
  echo '<p>Hoş geldiniz, kullanıcı!</p>';
  echo '<form method="POST" >';
  echo '<button type="submit" name="logout">Çıkış Yap</button>';
  echo '</form>';
  echo '</div>';

  echo '<div class="search-form">';
  echo '<form method="POST" >';
  echo '  <input type="text" name="search" id="search" placeholder="Dosya Ara">';
  echo '  <button type="submit" name="ara">Ara</button>';
  echo '</form>';
  echo '</div>';
} else {
  echo '<div class="giris-form">';
  echo '<form method="POST">';
  echo '<input type="text" name="username" placeholder="Kullanıcı Adı">';
  echo '<input type="password" name="password" placeholder="Şifre">';
  echo '<button type="submit" name="login">Giriş Yap</button>';
  echo '</form>';
  echo '</div>';
}
?>
<style>
body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
  background-color: #f5f5f5;
}

table {
width: 100%;
  border-collapse: collapse;
  margin: 20px auto;
  background-color: white;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}
 
th, td {
  padding: 3px;
  text-align: left;
  border: 1px solid #ddd;
}
 
th {
  background-color: #008CBA;
  color: white;
}
 
tr:nth-child(even) {
  background-color: #f2f2f2;
}

.alert {
  padding: 13px;
  background-color: #f8d7da;
  color: #721c24;
  margin-bottom: 15px;
  background-image: url('https://cdn1.iconfinder.com/data/icons/ionicons-outline-vol-2/512/warning-outline-20.png');
  background-repeat: no-repeat;
  background-position: 10px center;
  background-size: 20px 20px;
  padding-left: 40px;

}

.alert p {
  margin: 0;
  font-size: 15px;
  font-weight: bold;
} 
.alert-gir {
  background-image: url('https://cdn1.iconfinder.com/data/icons/ionicons-outline-vol-2/512/warning-outline-20.png');
  background-repeat: no-repeat;
  background-position: 10px center;
  background-size: 20px 20px;
  background-color: #f8d7da;
  color: #721c24;
  padding: 10px;
  margin-bottom: 20px;
  border: 1px solid #f5c6cb;
  border-radius: 5px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.alert-gir p {
  margin: 0;
  text-align: center;
}

/* Giriş Form*/

 .giris-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 20px;
}
.giris-form input {
  width: 100%;
  padding: 10px;
  margin: 5px;
  border: none;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}
.giris-form button {
  width: 100%;
  background-color: #0077cc;
  color: #fff;
  padding: 10px;
  margin: 5px;
  border: none;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}
.giris-form button:hover {
  background-color: #115dc6;
}

/* Çıkış Formu*/
.logout-form {
  display: flex;
  align-items: center;
}

.logout-form p {
  margin-right: 20px;
  font-size: 16px;
  font-weight: bold;
  color: #333;
  display: flex;
}

.logout-form button {
  padding: 5px;
  border: none;
  background-color: #0077cc;
  color: #fff;
  cursor: pointer;
  border-radius: 5px;
  margin: 10px 0;
}

.logout-form button:hover {
  background-color: #115dc6;
}

/* ara Formu*/

.search-form {
  margin: 0 auto;
  text-align: center;
  
}
.search-form input[type="text"] {

  width: 300px;
  padding: 10px;
  font-size: 16px;
  border: none;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}
.search-form button[type="submit"] {
   margin-left: 10px; /* Boşluk */
  padding: 0.5rem 1rem;
  border: none;
  border-radius: 4px;
  background-color: #0077cc;
  color: #fff;
  font-size: 1rem;
}
.search-form button:hover {
  background-color: #115dc6;
}
/* buton grup*/ 
.button-group {
  display: flex;
  justify-content: flex-start;
}

.button-group button {
  margin: 0 10px;
  padding: 10px;
  border: none;
  background-color: #008CBA;
  color: #fff;
  cursor: pointer;
   border-radius: 5px
}

.button-group button:hover {
  background-color: #115dc6;
}
</style>
<?php
if(isset($_POST['search'])) {
  $search_term = $_POST['search'];
  $dir = '.';
  $files = search_files($dir, $search_term);
  $num_results = count($files);
  $total_size = 0;
    foreach($files as $file) {
  $total_size += filesize($file);
    }
$total_size_formatted = format_file_size($total_size);
  echo '<div class="alert">';
  echo "<p>$num_results sonuç bulundu. Toplam $total_size_formatted </p>";
  echo '</div>';
  if($num_results > 0) {
    echo "<form method='POST'>";
    echo '<div class="button-group">';
    echo "<button type='button' onclick='selectAll()'>Tümünü Seç</button>";
    echo "<button type='button' onclick='unselectAll()'>Seçimi Kaldır</button>";
    echo "<button type='submit' name='delete_selected'>Sil</button>";
    echo "</div>";
    
    echo "<table>";
    echo "<thead><tr><th>Sil</th><th>Dosya Adı</th><th>Boyut</th></tr></thead><tbody>";
    foreach($files as $file) {
      $file_type = is_dir($file) ? 'Klasör' : 'Dosya';
      $file_size = filesize($file);
      $file_size_formatted = format_file_size($file_size);
      echo "<tr><td><input type='checkbox' name='delete[]' value='$file'></td><td><a href='$file' target='_blank'>$file</a></td><td>$file_size_formatted</td>
</tr>";
 
    }
    echo "</tbody></table>";
    
    echo '<div class="button-group">';
    echo "<button type='button' onclick='selectAll()'>Tümünü Seç</button>";
    echo "<button type='button' onclick='unselectAll()'>Seçimi Kaldır</button>";
    echo "<button type='submit' name='delete_selected'>Sil</button>";
    echo "</div>";
    echo "</form>";
  }
}
function format_file_size($bytes) {
  $sizes = array('Bytes', 'KB', 'MB', 'GB', 'TB');
  if ($bytes == 0) return 'n/a';
  $i = floor(log($bytes) / log(1024));
  return round($bytes / pow(1024, $i), 2) . ' ' . $sizes[$i];
}
 
if(isset($_POST['delete_selected'])) {
    $files_to_delete = $_POST['delete'];
    $num_deleted_files = 0;
    $total_deleted_size = 0;
    if(!empty($files_to_delete)) {
        foreach($files_to_delete as $file) {
            if(is_file($file)) {
                $file_size = filesize($file);
                if(unlink($file)) {
                    $num_deleted_files++;
                    $total_deleted_size += $file_size;
                }
            } else {
                list($deleted_files, $deleted_size) = delete_directory($file);
                $num_deleted_files += $deleted_files;
                $total_deleted_size += $deleted_size;
            }
        }
        echo '<div class="alert">';
        echo "<p>$num_deleted_files dosya başarıyla silindi. Toplam silinen boyut: " . format_size($total_deleted_size) . "</p>";
        echo '</div>';

    }
}
 
    function search_files($dir, $search_term) {
    $results = array();
    $files = scandir($dir);
    foreach($files as $file) {
    if($file == '.' || $file == '..') continue;
    $path = $dir . '/' . $file;
    if(is_dir($path)) {
    $results = array_merge($results, search_files($path, $search_term));
    } else {
    if(strpos($file, $search_term) !== false) {
    $results[] = $path;
    }
    }
    }
    return $results;
    }
 
    function delete_directory($dir) {
    $num_deleted_files = 0;
    $total_deleted_size = 0;
    if(is_dir($dir)) {
    $objects = scandir($dir);
    foreach($objects as $object) {
    if($object != '.' && $object != '..') {
    $path = $dir . '/' . $object;
    if(is_dir($path)) {
    list($deleted_files, $deleted_size) = delete_directory($path);
    $num_deleted_files += $deleted_files;
    $total_deleted_size += $deleted_size;
    } else {
    $file_size = filesize($path);
    if(unlink($path)) {
    $num_deleted_files++;
    $total_deleted_size += $file_size;
    }
    }
    }
    }
    if(rmdir($dir)) {
    $num_deleted_files++;
    }
    }
    return array($num_deleted_files, $total_deleted_size);
    }
 
    function format_size($size) {
    $units = array('B', 'KB', 'MB', 'GB', 'TB');
    $i = 0;
    while($size > 1024) {
    $size /= 1024;
    $i++;
    }
    return round($size, 2) . ' ' . $units[$i];
    }
    ?>
<script>
  function selectAll() {
    var checkboxes = document.getElementsByName('delete[]');
    for(var i=0; i<checkboxes.length; i++) {
      checkboxes[i].checked = true;
    }
  }
 
  function unselectAll() {
    var checkboxes = document.getElementsByName('delete[]');
    for(var i=0; i<checkboxes.length; i++) {
      checkboxes[i].checked = false;
    }
  }
</script>