set_post_thumbnail_size vs add_image_size

10

Was ist der Unterschied zwischen set_post_thumbnail_size und add_image_size? Ist set_post_thumbnail_size für alle Bilder und add_image_size für die individuelle Größenanpassung von Bildern?

Vielen Dank.

Greeso
quelle

Antworten:

25

Wenn ein Bild in WordPress hochgeladen wird, wird es in seiner Originalgröße und auch in einigen Größenänderungen in verschiedenen Größen gespeichert . Auf diese Weise wird es einfach, verschiedene Größen desselben Bildes für verschiedene Zwecke zu verwenden.

Standardmäßig erstellt WordPress 3 Kopien in 3 verschiedenen Größen:

  • 'thumb'
  • 'medium'
  • 'large'

Die Größe in Pixel für diese 3 Größen kann im WordPress-Dashboard unter dem Menü festgelegt werden Settings -> Media.

Jetzt wird die Funktion add_image_sizeverwendet, um eine neue Größe zu registrieren, die zu den 3 Standardeinstellungen hinzugefügt wird.

Jede Größe registriert ist, kann seinen Namen abgerufen wird unter Verwendung von in einiger Wordpress - Funktion, zum Beispiel wp_get_attachment_image_src, wp_get_attachment_image, wp_get_attachment_link.

Alle diese Funktionen akzeptieren einen Parameter $size, der der Name einer der registrierten Größen sein sollte (einer der 3 Standards oder eine der mit registrierten benutzerdefinierten Größen add_image_size).

Wenn 'full'als $sizeArgument verwendet wird, wird das Originalbild zurückgegeben, dessen Größe nicht geändert wurde.

Zusätzlich zu den oben genannten Funktionen gibt es zwei weitere Funktionen, die Bildgrößen verwenden: get_the_post_thumbnailund the_post_thumbnail.

Diese beiden Funktionen erhalten (das erste) und das Echo (das zweite) das Bild, das für einen Beitrag als "Ausgewähltes Bild" festgelegt ist.

Was von diesen Funktionen zurückgegeben (oder wiedergegeben) wird, ist ein vollständiges imgHTML-Tag, so etwas wie

<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />

Also, welche Größe wird verwendet?

Wenn a $sizeals 2. Argument übergeben wird (1. ist $postid), geben diese Funktionen das Bild in dieser Größe zurück. Andernfalls suchen diese Funktionen nach einer Bildgröße, die unter dem Namen registriert ist : post-thumbnail.

Dies ist keine der 3 Standardgrößen. Tatsächlich handelt es sich um die 4. Standardgröße (die 5. wird berücksichtigt full), und Sie können den Anruf registrieren set_post_thumbnail_size.

So

set_post_thumbnail_size( $width, $height, $crop );

ist eine Abkürzung für

add_image_size( 'post-thumbnail', $width, $height, $crop );

Wenn Sie nicht angerufen haben set_post_thumbnail_size(was bedeutet, dass die Größe 'post-thumbnail'nicht erstellt wurde), verwendet WordPress die Größe thumb, und wenn auch diese Größe nicht verfügbar ist, verwendet WordPress das Originalbild, dessen Größe nicht geändert wurde.

Das Registrieren von benutzerdefinierten Bildgrößen kann beim Entwerfen eines Themas sehr hilfreich sein, es ist jedoch wichtig, es nicht zu missbrauchen: Jedes hochgeladene Bild wird für alle registrierten Größen kopiert und in der Größe geändert. Das Registrieren vieler Größen verlangsamt den Upload von Bildern erheblich.

Eine Notiz:

Beachten Sie, dass WordPress beim Erstellen skalierter Kopien eines Bildes dieses niemals vergrößert, sondern nur kleinere Kopien erstellt. Wenn das Originalbild beispielsweise 400 x 500 Pixel groß ist und die mittlere Bildgröße 800 x 600 Pixel beträgt, werden keine mittleren und größeren Bilder erstellt.

Das Registrieren einer Bildgröße bietet also niemals die Sicherheit, dass eine Bilddatei für jede registrierte Größe tatsächlich im WordPress-Inhaltsordner vorhanden ist. Auch weil sich registrierte Bildgrößen leicht ändern: Einstellungen ändern, Themen wechseln usw.

Wenn sich eine Bildgröße aus irgendeinem Grund ändert, wirkt sich die Änderung auf die nach dieser Änderung hochgeladenen Bilder aus . Vorher hochgeladene Bilder ändern ihre Abmessungen nicht und werden nicht neu skaliert und gespeichert.

Wenn Sie sich auf bestimmte Bildgrößen verlassen müssen, nachdem einige Bilder bereits hochgeladen wurden (z. B. nach dem Ändern von Themen), ist das Plugin Regenerate Thumbnails ein Lebensretter.

gmazzap
quelle
2
Genial. Ich hätte wegen Ihrer Antwort 5 Mal geklickt, aber die Seite erlaubt es nicht. Danke.
Greeso
Gern geschehen
Nur noch eine Quest: Was ist, wenn ich set_post_thumbnail_size nicht aufgerufen habe (was bedeutet, dass die Größe 'post-thumbnail' nicht erstellt wurde), dann rufe ich the_post_thumbnail auf. Was wird passieren? (Weil the_post_thumbnail versucht, post-thumbnail als zu verwenden param).
Greeso
@ GM, Daumen hoch für eine klare Erklärung
Istiaque Ahmed
Diese Antwort ist sehr hilfreich! Ich denke jedoch: set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized. ... ist falsch. Nach meiner Erfahrung, wenn dies getestet set_post_thumbnail_size()wurde, greift WP auf das Bild in voller Größe zurück , wenn es nicht aufgerufen wurde.
Travis Northcutt
1

Aus dem Kodex:

set_post_thumbnail_size

Legen Sie die Standardabmessungen für das empfohlene Bild (früher Post Thumbnail) fest. Verwenden Sie: add_image_size (), um zusätzliche Bildgrößen für ausgewählte Bilder zu registrieren.

add_image_size

Registriert eine neue Bildgröße. Dies bedeutet, dass WordPress beim Hochladen eines neuen Bildes eine Kopie des empfohlenen Bilds (früher als Post-Miniaturbild bezeichnet) mit den angegebenen Abmessungen erstellt.

Krzysiek Dróżdż
quelle
Kann ich add_image_size verwenden, ohne set_post_thumbnail_size zu verwenden?
Greeso
Ja natürlich.
Krzysiek Dróżdż