Empêcher Wordpress de générer une taille de taille moyenne de 768 pixels pour les téléchargements d'images?

10

J'ai suivi les directives pour empêcher wordpress de générer de nombreuses tailles différentes pour les images individuelles téléchargées via les tailles de miniature, moyenne et grande à 0 dans Paramètres> Média et je me suis débarrassé de toutes les instances de add_image_size et set_post_thumbnail_size dans le fichier functions.php de mon thème. Cependant, lorsque je télécharge de nouvelles images, Wordpress génère toujours une version d'une largeur de 768 pixels au-delà de la taille d'origine. Je crois que cela a quelque chose à voir avec cette mise à jour, mais je me demande s'il existe un moyen de l'empêcher de se produire? Je crois que j'ai lu quelques discussions où les gens l'ont atteint par inadvertance en essayant de faire autre chose, mais je cherche une méthode claire.

user3597545
la source
Vous vous rendez compte que WordPress fait cela pour réduire la charge du serveur et accélérer votre site, non?
Kenneth Odle

Réponses:

16

Pour supprimer la medium_largetaille de l' image, vous pouvez essayer de la supprimer avec le intermediate_image_sizesfiltre:

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

Je ne sais pas si vous essayez de supprimer toutes les tailles intermédiaires, mais vous pouvez essayer:

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

__return_empty_array() ` est une fonction centrale intégrée.

Il faut noter qu'il n'est pas possible de le supprimer avec

remove_image_size( 'medium_large' );

car il n'est pas ajouté avec add_image_size()et donc ne fait pas partie du $_wp_additional_image_sizestableau global ou wp_get_additional_image_sizes();

Birgire
la source
oui, il est également possible de changer l' medium_large_size_woption en 0, mais nous ne pouvons pas le faire via /wp-admin/options.phpcar il semble y avoir un problème avec une valeur 0 (c'est en fait ce que j'ai essayé d'abord avant d'écrire la réponse ;-), nous devons donc la définir via l'API des paramètres ou manuellement dans le wp_optionstableau.
birgire
7

Supprimez la taille de l'image de la même manière que le code de base wordpress:

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

Gardez à l'esprit qu'il medium_larges'agit généralement d'une bonne taille srcset, ne le supprimez que si vous comprenez comment cela srcsetfonctionne, si vous avez déjà des tailles similaires.

Dima Stefantsov
la source
2

cela fonctionnera


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
la source
Bien que cela n'ait pas créé l'image elle-même, il a cependant créé l'entrée dans le tableau de pièces jointes, donc une fausse entrée avec le 769x à la fin de l'URL. L'utilisation du fichier par défaut intermédiaire_image_sizes s'est débarrassé de la création de l'image et de la non-affichage d'une entrée pour celle-ci dans le tableau.
lowtechsun