Irgendwann in den Urzeiten von WordPress wurden hochgeladenen Bilder im Original abgelegt und zusätzlich in drei verschiedenen Bildgrößen (Thumbnails/Vorschaubilder für Galerien, „Mittel“ und „Groß“ zum Einfügen in Beiträge) skaliert. Die Theme-Entwickler haben sich dann aber zur Umsetzung bestimmter Layouts zusätzliche Bildgrößen gewünscht, die mit der Funktion add_image_size()
vorgegeben werden können. Das Theme Sydney definiert zum Beispiel fünf weitere Vorschaubildgrößen, was dann zusammen schon acht Bilddateien macht.
Bei einem Theme-Wechsel macht es Sinn, die bereits hochgeladenen (und skalierten) Fotos neu zu skalieren, damit die im neuen Theme verwendeten Bildgrößen berücksichtigt werden. Bringt das Theme fünf weitere Bildgrößen mit, sind wir bereits bei 13 verschiedenen Bildgrößen. Das Beispiel lässt sich sicher ausweiten.
Grundsätzlich ist es sinnvoll, Bilder in mehreren Bildgrößen vorzuhalten, weil ein Bildgröße in FullHD vielleicht auf einem 27-Zoll-Desktopbildschirm Sinn macht, aber nicht auf einem 5-Zoll-Smartphone-Display. Deshalb werden Bilder im Inhalt auch nicht als reine <img>
-Tags, sondern mit dem <figure>
-Tag ausgegeben, das verschiedene Bildgrößen zum Download anbietet:
<figure class="wp-block-image size-large">
<a
href="https://example.com/wp-content/uploads/2020/12/irgendwas.png"
><img
loading="lazy"
src="https://example.com/wp-content/uploads/2020/12/irgendwas-1024x703.png"
alt="Das Bild foo von bar."
class="wp-image-3202"
srcset="
https://example.com/wp-content/uploads/2020/12/irgendwas-1024x703.png 1024w,
https://example.com/wp-content/uploads/2020/12/irgendwas-300x206.png 300w,
https://example.com/wp-content/uploads/2020/12/irgendwas-768x527.png 768w,
https://example.com/wp-content/uploads/2020/12/irgendwas.png 1090w
"
sizes="(max-width: 1024px) 100vw, 1024px"
width="1024"
height="703"
/></a>
</figure>
Thumbnails sind nur wenige Kilobyte groß und fallen selbst bei einem Shared Webhosting (das heute für kleines Geld mit 10 und mehr Gigabyte Speichervolumen angeboten wird!) nicht ins Gewicht. Damit aber auch übergroße, direkt aus der Kamera oder dem Smartphone hochgeladenen Fotos nicht den kostbaren Speicherplatz in beschlag nehmen, skaliert WordPress jedes Originalbild, das eine vorgegebene Maximalgröße überschreitet, automatisch auf eine für die Anzeige im Web verträglichere Größe. Wenn du also nicht gerade Fotograf bist und dir in den Kopf gesetzt hast, mehrere tausend Bilder auf deiner Website zu horten, sollte der Speicherplatz keine Probleme bereiten.
Doch, es ist ein Problem. Weil ich immer wieder an Speicherlimits stoße und dann ins nächst teurere Paket wechseln muss. QUEERmdb ist eine Datenbank mit hunderten Filmen, Serien und Büchern.
Meine Fragen sind damit auch nicht beantwortet. Wenn ich ein Bild in 410*580 hochlade und dieses in eine Zelle mit 130*84 einfüge, verwendet WP dann eines der 30 jeweils kleineren Varianten? Dann bräuchte ich kein zweites Bild in der passenden Größe hochladen.
Und kann ich irgendwie verhindern, dass WordPress bei jedem Upload 30 zusätzliche Varianten in mein Speicher ballert? Mein Theme braucht keine 31 Dateien für 1 Bild.
MfG
Wenn du ein Bild in niedriger Auflösung hochlädst, wird das von WordPress nicht hochskaliert.
Wenn das Theme oder deine Einstellungen > Mediathek eine Bildgröße von 130 × 84 Pixeln vorsehen, brauchst du deine Bilder nicht noch zusätzlich in der Größe hochladen. Die Bilder werden dann bereits auf diese Größe skaliert.
Wenn du die Anzahl der skalierten Bilder verringern möchtest, kannst du
- ein anderes Theme verwenden
- mit der Funktion
remove_image_size()
die im Core und im Theme definierten Bildgrößen wieder entfernen. remove_image_size( 'medium' );
entfernt zum Beispiel die Bildgröße „Mittel“.
- mit folgendem Code die Skalierung völlig deaktivieren:
/**
* @param array $sizes An associative array of image sizes.
* @param array $metadata An associative array of image metadata: width, height, file.
*/
function remove_image_sizes( $sizes, $metadata ) {
return [];
}
add_filter( 'intermediate_image_sizes_advanced', 'remove_image_sizes', 10, 2 );
(Quelle: Disabling auto-resizing of uploaded images)
Den Code kannst du in der functions.php
eines Child-Themes eintragen oder mit dem Plugin Code Snippets hinzufügen.
Für welche Änderung du dich auch entscheidest: einmal hochgeladenen Bilder sind von nachträglichen Änderungen nicht betroffen. Du kannst aber mit dem Plugin Regenerate Thumbnails die Skalierung neu anstoßen (was bei großer Bildmenge ein aufwendiger Prozess sein dürfte – ich würde auf jeden Fall vorher ein Backup machen).
Noch kurz der freundliche Hinweis: ich bin ein Anwender, wie du und werde nicht bezahlt, um dir zu antworten. Ich weiß noch lange nicht alles, bemühe mich aber, mein vorhandenes Wissen kostenlos mit dir zu teilen. Vielleicht können wir uns auf einen entspannteren Umgangston einigen? Dass dein WordPress „in den Speicher ballert“ ist ja nicht meine Schuld. 🙂
Bei einer großen Anzahl an Bildvarianten, die ein hungriges Theme wie zB „Newspaper“ erzeugt, kann das beim Provider schon ein Thema werden. Oft bieten Shared-Pakete zwar „unbegrenzten“ Speicherplatz, aber, was einem 1&1 zB nicht erzählt eine limitierte Menge an Dateien, die bei der seltsamen Zahl 262.144 liegt. Erzeugt ein Theme 15 Bildvarianten, kannst Du nur noch gut 17.000 Dateien hochladen….
Interessanter Hinweis, wobei ich mich gerade frage, welche Website mit Shared Webhosting so interessant sein mag, dass ich mir 17.000 Bilder anschaue?
Danke für eure Antworten!
Wenn WordPress die Bildgröße anpasst, warum wird dann die große Variante gezeigt, wenn man sich die Grafikadresse anzeigen lässt?
30 Instanzen sind schon ein bissl zu viel, aber dieses Theme verbraucht schon mehr als 2 Größen. Schätze mal ~ 7 Instanzen fürs Startseite-Widget, Artikelbild, Kategoriebilder, Slider, Galerie, Thumbnails, Recent, werden es schon sein …
Wenn WordPress die Bildgröße anpasst, warum wird dann die große Variante gezeigt, wenn man sich die Grafikadresse anzeigen lässt?
Wenn ein Theme nicht die richtigen Bilder für die Bild-Platzierungen verwendet, dann liegt das möglicherweise eher am Theme als an WP.
Teste mal mit dem von Bego empfohlenen Plugin „Regenerate Thumbnails“. Zuerst nur mit ein paar Bildern und hake evtl. auch das „Vorschaubilder löschen für alte, unregistrierte Größen, ...“ an.
Dann (nach Reload inkl. Cache löschen) nachschauen, ob die so optimierten Bilder besser zu den Bild-Platzierungen passen(*) und per FTP nachsehen, ob pro so optimierten Bild nun echt weniger Instanzen da sind.
*) Da hilft zb. in Chrome das da.
Sollte das auch nicht passen, gibt es neben den ebenfalls schon vorgeschlagenen function remove_image_sizes
noch Eingriffsmöglichkeiten per (Child)Theme-Code.