Automatisch Generierte Thumbnail-Komprimierung, abhängig von der Größe

Dies ist ein Follow-up zu dieser Frage , bei der die JPG-Komprimierung geändert wird, abhängig davon, was WPs eingebaute Bildresultat-Bildgröße zurückgibt. Während es für die meisten Leute arbeiten kann, suche ich nach einer diskreteren und automatischen Annäherung. Und das ändert den wp_create_thumbnail denke ich.

Der Punkt ist: Wie kann ich die JPG-Komprimierung automatisch generierter Miniaturbilder für ein hochgeladenes Bild ändern? Zum Beispiel Bilder unter 400 px Breite bei 60% und zwischen 401 px x 100 px Breite bei 80%.

Solutions Collecting From Web of "Automatisch Generierte Thumbnail-Komprimierung, abhängig von der Größe"

Ich suche nach einem diskreteren und automatischen Ansatz. Und das ändert den wp_create_thumbnail denke ich.

Und da liegst du falsch. Hier ist der gesamte Code für wp_create_thumbnail() von core:

 function wp_create_thumbnail( $file, $max_side, $deprecated = '' ) { if ( !empty( $deprecated ) ) _deprecated_argument( __FUNCTION__, '1.2' ); $thumbpath = image_resize( $file, $max_side, $max_side ); return apply_filters( 'wp_create_thumbnail', $thumbpath ); } 

Diese function alleine macht nicht viel. Wenn Sie dagegen etwas ändern müssen, wäre dies image_resize() …, aber das Ändern der corefunktion ist immer noch der falsche Weg.

Warum Core nicht ändern?

Das Ändern einer Core-Datei wird von Mainstream-Entwicklern normalerweise verpönt. Wenn Sie den core ändern und Ihre Änderungen nicht erneut an das Projekt übergeben, bleibt eine gegabelte Version von WordPress übrig. Wenn Sie das nächste Mal ein Update veröffentlichen, müssen Sie die coredateien nach der Aktualisierung erneut bearbeiten, um sie zu verwalten neue functionalität.

In vielen Fällen gelten die Änderungen, die Sie für den core vornehmen möchten, nur für eine Handvoll Menschen – in der Regel nur für Sie. Wenn die Änderungen nicht der Mehrheit der WP-Benutzer zugutekommen, werden alle Änderungen, die außerhalb des aktuellen Entwicklungszyklus liegen, normalerweise für Trac mit einer “Wontfix” -Auflösung bereitgestellt oder in Trac belassen.

Was für dich oder nur mich funktioniert, gehört nicht in das coreprojekt – es gehört in ein Plugin.

Der richtige Weg

Der richtige Weg, um Dinge zu ändern, ist eine eigene Version von image_resize() in einem Plugin zu erstellen. Erstellen Sie dann Ihre eigene my_create_thumbnail() -function, die folgendermaßen my_create_thumbnail() :

 function my_create_thumbnail( $file, $max_side ) { return apply_filters( 'wp_create_thumbnail', my_image_resize( $file, $max_side, $max_side ) ); } 

Diese function hat die gleiche Signatur wie wp_create_thumbnail() und wp_create_thumbnail() dieselben Filter aus. Sie kann also als Eins-zu-Eins-Ersatz für die ursprüngliche function in allen anderen wp_create_thumbnail() und wp_create_thumbnail() verwendet werden.