Verhindern Sie, dass Wordpress mittelgroße 768px große Bilder hochlädt?

9

Ich habe Richtlinien befolgt, um zu verhindern, dass WordPress viele verschiedene Größen für einzelne Bilder generiert, die über die Größen für Miniaturansicht, Mittel und Groß auf 0 unter Einstellungen> Medien hochgeladen wurden, und alle Instanzen von add_image_size und set_post_thumbnail_size in der Datei functions.php von my entfernt Thema. Wenn ich jedoch neue Bilder hochlade, generiert Wordpress immer noch eine Version mit einer Breite von 768 Pixel, die über die ursprüngliche Größe hinausgeht. Ich glaube, es hat etwas mit diesem Update zu tun , frage mich aber, ob es eine Möglichkeit gibt, dies zu verhindern? Ich glaube, ich habe einige Threads gelesen, in denen Leute es versehentlich geschafft haben, etwas anderes zu tun, aber ich suche nach einer eindeutigen Methode.

user3597545
quelle
Sie wissen, dass WordPress dies tut, um die Serverlast zu reduzieren und Ihre Site zu beschleunigen, oder?
Kenneth Odle

Antworten:

16

Um die medium_largeBildgröße zu entfernen, können Sie versuchen, sie mit dem intermediate_image_sizesFilter zu entfernen :

add_filter( 'intermediate_image_sizes', function( $sizes )
{
    return array_filter( $sizes, function( $val )
    {
        return 'medium_large' !== $val; // Filter out 'medium_large'
    } );
} );

Sie sind sich nicht sicher, ob Sie versuchen, alle Zwischengrößen zu entfernen, aber dann können Sie Folgendes ausprobieren:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );

Dabei ist __return_empty_array() ` eine integrierte Kernfunktion.

Wir sollten beachten, dass es nicht möglich ist, es mit zu entfernen

remove_image_size( 'medium_large' );

weil es nicht mit add_image_size()und daher nicht Teil des $_wp_additional_image_sizesglobalen Arrays hinzugefügt wird oder wp_get_additional_image_sizes();

Birgire
quelle
Ja, es ist auch möglich, die medium_large_size_wOption auf zu ändern 0, aber wir können es nicht über tun, /wp-admin/options.phpda es dort ein Problem mit einem 0-Wert zu geben scheint ( genau das habe ich zuerst versucht, bevor ich die Antwort geschrieben habe ;-), also müssen wir es einstellen über die Einstellungs-API oder manuell in der wp_optionsTabelle.
Birgire
6

Entfernen Sie die Bildgröße auf dieselbe Weise wie der WordPress-Kerncode:

add_filter('intermediate_image_sizes', function($sizes) {
    return array_diff($sizes, ['medium_large']);
});

Denken Sie daran, dass dies medium_largeim Allgemeinen eine gute Größe srcsetist. Entfernen Sie sie nur, wenn Sie wissen, wie sie srcsetfunktioniert, wenn Sie dort bereits ähnliche Größen haben.

Dima Stefantsov
quelle
2

das wird funktionieren


function paulund_remove_default_image_sizes( $sizes) {
    unset( $sizes['medium_large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced','paulund_remove_default_image_sizes');

https://developer.wordpress.org/reference/hooks/intermediate_image_sizes_advanced/

Sil2
quelle
Während dies nicht das Bild selbst erstellte, erstellte es jedoch den Eintrag im Anhangsarray, also einen gefälschten Eintrag mit dem 769x am Ende der URL. Wenn Sie den Standardfilter intermediäre_Bildgrößen verwenden, wurde das Erstellen des Bilds und das Anzeigen eines Eintrags im Array nicht mehr möglich.
Lowtechsun