it-swarm.com.de

Wie entferne ich 20 GB Bilder mit geänderter Größe?

Ich möchte alle verkleinerten Bilder löschen, ohne das Originalbild zu verändern. Ich habe mehr als 20 GB unbenutzte Daten, die Platz auf dem Server beanspruchen. Zum Beispiel:

  • first-image-name.jpg
  • first-image-name-72x72.jpg
  • first-image-name-150x150.jpg
  • first-image-name-250x250.jpg
  • first-image-name-300x300.jpg
  • first-image-name-400x400.jpg
  • first-image-name-1024x1024.jpg
  • second-image-name.jpg
  • second-image-name-72x72.jpg
  • second-image-name-150x150.jpg
  • second-image-name-250x250.jpg
  • second-image-name-300x300.jpg
  • second-image-name-400x400.jpg
  • second-image-name-1024x1024.jpg

Gibt es eine Möglichkeit, alle Bilder mit geänderter Größe zu löschen und das Erstellen solcher Bilder in Zukunft zu deaktivieren?

4
Mohamed Gamal

Ein Großteil der Antworten befasste sich mit der Frage, wie Sie künftige Standardbildgrößen nicht mehr erstellen können. Dabei werden jedoch keine benutzerdefinierten Größen in Ihrem Design berücksichtigt. Hier ist eine andere Lösung, die Sie zu functions.php hinzufügen können:

function wpse_240765_unset_images( $sizes ){
    unset( $sizes[ 'thumbnail' ]);
    unset( $sizes[ 'medium' ]);
    unset( $sizes[ 'medium_large' ] );
    unset( $sizes[ 'large' ]);
    unset( $sizes[ 'full' ] );
    return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'wpse_240765_unset_images' );

sie können auch die zukünftige Standardbildgenerierung deaktivieren, indem Sie die Bilder auf Null setzen:

 enter image description here 

aber um die Bilder zu entfernen, die nicht die Originale sind, bin ich auf dasselbe Problem gestoßen, als ich vergessen habe, es so einzustellen, dass es nicht gemacht wird, und was ich getan habe, war:

  • Laden Sie alle Fotos lokal über einen SFTP-Dienst herunter, ich liebe Senden (bezahlt), aber Sie können so etwas wie Filezilla (kostenlos) verwenden.

  • Laden Sie alle Dateien in ein Verzeichnis herunter.

Ich habe einen Mac, aber jedes Terminal, das Bash erlaubt, funktioniert. Ich habe ein einfaches Bash-Skript geschrieben:

# !/bin/bash

USERNAME=vader
DIRECTORY="/Users/$USERNAME/desktop/question240765"
for imageWithSize in $(find "$DIRECTORY" -type f -regex '.*/[a-z-]*-[0-9].*.txt$'); do
    cd $DIRECTORY
    echo rm $imageWithSize
done

Der Ordner befindet sich auf meinem Desktop und für die Frage habe ich ihn question240765 genannt. Ich habe .txt-Dateien verwendet, um dies zu testen, aber Sie können es in .jpg ändern. Ich habe es als Bash-Datei image_dust.sh gespeichert, damit ich es später ändern oder verbessern kann. Führen Sie das Skript zuerst mit der echo aus und Sie können es sogar in eine Datei speichern, indem Sie die Zeile ändern:

echo rm $imageWithSize 

zu:

echo rm $imageWithSize >> result.txt

dadurch wird alles in der Datei result.txt protokolliert und Sie können sie durchsuchen, bevor Sie sie wirklich entfernen. Wenn alles in Ordnung ist, ändern Sie diese Zeile in:

rm $imageWithSize

Wenn Sie neugierig sind, was der Regex macht:

  • [a-z-]* sucht nach Dateinamen wie foo-bar oder fo-fo-bar. Wenn Sie Großbuchstaben in Ihrem Namen haben, verwenden Sie [A-Za-z-]*
  • -[0-9] sucht nach dem Dateinamen nach dem verbleibenden - (Bindestrich) mit einer Nummer [0-9]
  • .*.txt sucht nach der ersten Ziffer bis zum Ende des Namens mit der Erweiterung.

Nachdem Sie das Skript fertiggestellt und ausgeführt haben. Sie könnten alles auf Ihrer Website wegblasen und die Bilder erneut hochladen. Wenn Sie sich Sorgen über die Dateigröße machen, würde ich sogar imagemagick verwenden, aber ich bevorzuge sips, um die Komprimierungsgröße der Bilder zu reduzieren.

Wenn Codierung nicht Ihre größte Stärke ist möchten Sie möglicherweise eine Plug-in-Lösung suchen.

Was ich vorhabe, ist ein Vorschlag für ein paar kostenlose Plugins, die sich im WordPress-Repository befinden:

Ich muss zugeben, dass ich den ersten - Media Cleaner - noch nicht verwendet habe, daher kann ich Ihnen keine fundierte Meinung geben.

Ich habe zwar die zweite verwendet - Bildgröße optimieren - und hatte die erwarteten Ergebnisse.

Punkte, nach denen man auf jeden Fall immer Ausschau halten sollte:

Bevor Sie etwas versuchen,

  • Ich kann die Wichtigkeit der Erstellung eines vollständigen Backups Ihrer WordPress-Installation nicht genug strecken (sowohl Ihr Upload-Ordner als auch Ihr dB) .
    Ich verstehe, dass es sich um 20 GB handelt, aber ein Backup ist besonders in dieser einzigartigen Situation unerlässlich.

  • Dieser Vorgang ist zeitaufwendig und belastet den Server.
    Es ist ratsam, Ihre Site in den Wartungsmodus zu versetzen.

  • Löschen Sie verwaiste Anhänge

Wenn alles erledigt ist Verwende deine Lieblings-Thumbnails Erstelle Thumbnails Plugins, um die Bildgrößen von WordPress/Themes wiederherzustellen und EWWW Image Optimizer und Imsanity zu installieren. Diese Kombination garantiert optimierte Bilder in der Größe, die nur benötigt werden.


Plugin spezifische Punkte.

Medienreiniger

  • "Dateien, die als nicht verwendet erkannt wurden, werden einem bestimmten Dashboard hinzugefügt, in dem Sie den Papierkorb auswählen können. Sie werden dann in einen internen Papierkorb des Plugins verschoben. Nach weiteren Tests können Sie sie definitiv in den Papierkorb werfen." .
  • Einige Plugins können damit in Konflikt geraten. Wenn dies der Fall ist und Sie sich im Wartungsmodus befinden, deaktivieren Sie alle und führen Sie die Reinigung durch.

Optimieren Sie die Größe der Bilder

  • "UM die vor der Aktivierung des Plugins erstellten Bildgrößen ZU ENTFERNEN, gehen Sie zu Einstellungen -> Medien und verwenden Sie die Schaltfläche unter" Bildgrößen entfernen ", um die Bereinigung durchzuführen".
  • Lesen Sie diesen Support-Thread: Dringende Fragen zur Verarbeitung vorhandener Bilder

Thumbnail Cleaner

  • Enthält Funktionen wie: Erstellen von Backups Ihrer Uploads, Analysieren Ihres Upload-Verzeichnisses, Anzeigen einer Übersicht über die Anzahl der Originaldateien und Miniaturansichten sowie Wiederherstellen von Backups für den Fall, dass Sie eine Datei verloren haben, die nicht gelöscht werden sollte.
  • Lesen Sie diesen Support-Thread: Nur Original-Image sichern

Bitte teilen Sie uns mit, wie Sie die besten Ergebnisse erzielt haben.

1
marikamitsos

Um alle überflüssigen Bilddateien zu entfernen, müssen wir alle Posts durchlaufen, die Anhänge zu diesen Posts suchen, feststellen, welche angehängten Bildgrößen nicht mehr benötigt werden, und diese Dateien entfernen. Auf geht's.

Zuerst alle (benutzerdefinierten) Posts und Seiten abrufen und durchlaufen:

$the_query = new WP_Query (array ('posts_per_page' => -1, 'post_type' => 'any'));
foreach ($all_posts as $post) { ... }

Als nächstes für $postalle angehängten Bilder abrufen und eine Liste aller Mediengrößen abrufen . Dann durchlaufen Sie sie:

$images = get_attached_media ('image',$post); // returns array of post objects
$sizes = get_intermediate_image_sizes(); // returns array of identifying strings
foreach ($images as $image) {
  foreach ($sizes as $size) {
    ...
    }
  }

Nun für dieses Bild und Größe, finden Sie die URL und löschen Sie die Datei

$att = wp_get_attachment_image_src ($image->ID,$size); returns array of file properties
wp_delete_file ($att['url']);

Ich würde diesen Code vor dem Anwenden gründlich testen ... Bei 20 GB in Bildern kann es auch eine Weile dauern, bis er ausgeführt wird.

1
cjbj

Keine Ahnung, wie man vorhandene Bilder entfernt. Sie können jedoch die Generierung von Bildgrößen für neue Bilder einstellen, die Sie hochladen möchten.

Wenn Sie Codes schreiben möchten: Fügen Sie diesen Codeausschnitt in die functions.php-Datei Ihres Themas ein.

add_filter( 'intermediate_image_sizes_advanced', 'wpse_240765_image_sizes' );

function wpse_240765_image_sizes( $sizes ){
    $sizes = array();
    return $sizes;
}

Oder mit einem Plugin: Benutze dieses Plugin https://wordpress.org/plugins/image-sizes/

Es gibt Ihnen die gleiche Ausgabe. Sie können sogar auswählen, welche der Bildgrößen nicht erstellt werden sollen.  enter image description here 

1
mukto90

Wenn Sie über SSH-Zugriff verfügen, können Sie die folgenden Befehle ausführen, um die verkleinerten Bilder aufzulisten und zu entfernen. Später können Sie sie wieder aufbauen.

Listet alle Bilder auf, deren Größe geändert wurde.

# List all resized images.
# Usage: lrimg site.ext
function lrimg() {
  clear
  THE_PWD=$PWD
  cd ~
  cd /var/www/"$1"/htdocs/wp-content/uploads/
  find . -regextype posix-extended -regex ".*-[[:digit:]]{1,9}x[[:digit:]]{1,9}(@2x)?.(jpg|jpeg|png|eps|gif)" -type f
  cd $THE_PWD
}

Entfernen Sie alle verkleinerten Bilder.

# Remove all resized images.
# Usage: lrimgrm site.ext
function lrimgrm() {
  clear
  THE_PWD=$PWD
  cd ~
  cd /var/www/"$1"/htdocs/wp-content/uploads/
  find . -regextype posix-extended -regex ".*-[[:digit:]]{1,9}x[[:digit:]]{1,9}(@2x)?.(jpg|jpeg|png|eps|gif)" -type f -exec rm {}  \;
  cd $THE_PWD
}

Sei hier vorsichtig. Halten Sie Ihre Backups bereit.

P.S. Mein Server hat ein NGINX-Setup. Aus diesem Grund lauten die Site-Pfade /var/www/"$1"/htdocs/ $ 1 als Parameter für den Site-Namen. Sie können es an Ihren Pfad anpassen.

1
Ahmad Awais

Die fließenden Schritte sollten es tun:

1) Entfernen Sie zunächst nicht benötigte Bildgrößen aus Ihren relevanten Dateien, z. funktionen. PHP in Ihrem Theme und ggf. vorhandene Plugins (z. B. ruderlos).

2) Als nächstes können Sie alle benötigten Bildgrößen per FTP löschen.

3) Anschließend müssen Sie die Miniaturansichten neu generieren (z. B. alle Bildgrößen, die Wordpress erstellen soll). Sie können ein beliebiges Plug-In zum Generieren von Miniaturansichten aus dem Repo WP verwenden.

Versuchen Sie es alternativ folgendermaßen: 1) Entspricht Schritt 1 oben

2) Es gibt einige Plugins im Plugin-Verzeichnis (Repo), die alle WP Thumbs löschen und die Thumbs nur dann generieren, wenn sie zum ersten Mal auf einer bestimmten Seite Ihrer Website aufgerufen werden. Bei einer späteren Anforderung des Bildes ist das Bild bereits vorhanden und wird wie gewohnt geliefert. Dies hat den Vorteil, dass Thumbs nur für Bilder/Größen erstellt werden, die von Ihrer Site tatsächlich benötigt werden. Bilder, die auf nicht standardmäßige Weise aufgerufen werden, werden möglicherweise nicht generiert.

Wenn Sie den zusätzlichen Aufwand für übermäßig große Originalbilder verringern möchten, können Sie das Plug-in "imsanity" verwenden, um die physische Dateigröße dieser Originale auf eine Größe Ihrer Wahl zu reduzieren. Es ist ein großartiges Tool für Websites mit vom Benutzer eingereichten Bildern.

0
Phill Healey

1) Um zu verhindern, dass WordPress beim Hochladen eines Bildes mehrere Bildgrößen erstellt, können Sie dies ohne Verwendung eines Plugins tun.

Navigieren Sie im Admin-Bereich zu Einstellungen > Medien .

Wenn Sie die Größen auf 0 setzen, wird WordPress daran gehindert, Standardbildgrößen zu erstellen, und nur das Originalbild wird gespeichert.

 enter image description here 

2) Um die 20 GB Bilder, die Sie auf Ihrer Site haben, zu reduzieren, würde ich einfach SFTP auf Ihren Server laden und die unterschiedlich großen Bilder manuell löschen. Navigieren Sie im Stammverzeichnis einer WordPress-Installation zu wp-content/uploads/<yyyy>/<mm>/ und Sie finden alle Ihre Bilder und Medien-Uploads. Sie möchten sichergehen, dass das Originalbild erhalten bleibt, oder Sie löschen einfach das gesamte Bild. Jeder Bilddateiname mit einem zusätzlichen - ###x###.jpg ist ein automatisch generiertes Bild. Das Originalbild würde dies nicht im Dateinamen haben.

Nebenbei - um Ihnen mit Ihren Bildern zu helfen, würde ich das WP-Smush-Plugin von WPMU DEV ausprobieren.

WP-Smush - Bildoptimierung

Es ist wirklich großartig und wenn Sie Bilder hochladen, verwendet es automatisch ihre Server, um Bilder vor dem Speichern zu komprimieren und zu komprimieren. Es kann auch Bilder mit großer Auflösung auf eine vernünftige Maximalgröße verkleinern. Sie sollten wirklich kein Bild anzeigen müssen, das größer als 2048 x 2048 ist.

0
italiansoda