web-dev-qa-db-fra.com

Les paramètres dans 'Support> Paramètres' sont ignorés lors de l'insertion d'images

Lorsque je télécharge une image, celle-ci est automatiquement redimensionnée comme je l'imaginais. Toutefois, les tailles d'insertion de l'image semblent ignorer les paramètres que j'ai définis dans Paramètres/Support.

Dans mes paramètres de média, j'ai:

  • Vignette: 150 x 150
  • Moyen: 300 x 300
  • Grand: 690 x 9999

Je télécharge une image de: 2226 x 1663 .
Wordpress génère les tailles d'image correctes, mais me donne les options suivantes pour l'insertion:

  • Vignette: 150 x 150 (comme prévu)
  • Moyenne: 300 x 224 (comme prévu)
  • Grand: 640 x 447 (Mauvais. Pourquoi?)

J'ai consulté les forums et trouvé une suggestion d'ajouter les éléments suivants à mon fichier functions.php:

update_option('large_size_w', 690);

Cependant, cela n'a pas fonctionné.

4
Gary

Je pense que votre problème est que la valeur définie pour la variable globale$content_width(qui est 640px dans Boilerplate et 584px dans Twenty Eleven) est inférieure à la largeur que vous avez définie. spécifiez via Settings -> Media.

WordPress redéfinit vos paramètres utilisateur avec la valeur spécifique au thème. Cela a du sens, puisqu'un thème connaît sa largeur de contenu maximale, et utiliser une largeur d'image plus grande que celle à laquelle le thème est conçu aurait très probablement pour effet de casser la présentation du thème.

Si vous devez modifier la largeur de l'image large en 690px (et en supposant que votre thème enfant puisse accepter cette largeur), la solution consiste à define $content_width dans votre fichier Child Theme functions.php. Je recommanderais d'utiliser une fonction de configuration du thème enfant, connectée à after_setup_theme(), comme ceci:

<?php
function wpse48075_theme_setup() {
    // Define $content_width global
    global $content_width;
    if ( ! isset( $content_width ) ) {
        $content_width = 690;
    }
}
add_action( 'after_setup_theme', 'wpse48075_theme_setup', 9 );
?>

La priorité 9 est probablement excessive, car les actions de votre thème enfant seront ajoutées avant les actions du thème parent; mais utiliser la priorité 9 garantira que cette action est déclenchée avant la configuration du thème parent, à la priorité 10.

Étant donné que votre action Thème enfant est déclenchée en premier, le thème enfant définit $content_width et le thème parent ne le remplace pas (car il utilise également un wrapper conditionnel if ( ! isset() )).

Modifier

Donc, en regardant le fichier Twenty Eleven functions.php, j’ai réalisé que j’avais fait une mauvaise hypothèse: Twenty Eleven définit $content_width nue dans functions.php, plutôt qu’à l’intérieur de la fonction de configuration du thème, reliée à after_setup_theme. Donc, pour le remplacer, ** vous devez faire de même **.

Placez simplement ce qui suit en haut de votre fichier functions.php, avant toute autre définition de fonction:

$content_width = 690;

Cela devrait fonctionner, car le thème enfant functions.php est analysé avant le thème parent functions.php.

(Ceci est un excellent exemple de la raison pour laquelle Themes devrait envelopper tout ce qui se trouve dans les rappels . :))

6
Chip Bennett

Si vous voulez plus de contrôle sur les tailles d’image générées lorsque vous téléchargez des images, jetez un coup d’œil au plugin Simple Image Sizes

0
Scriptamateur

Modifiez vos paramètres sur la page de support afin que votre largeur d'intégration maximale soit 690 plutôt que vide.

enter image description here

0
Tom J Nowell