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

4

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 définis dans Paramètres / Média.

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

  • Vignette: 150 x 150
  • Moyenne: 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 d'insertion suivantes:

  • 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é la suggestion d'ajouter les éléments suivants à mon fichier functions.php:

update_option('large_size_w', 690);

Cependant, cela n'a pas fonctionné.

    
posée Gary 05.04.2012 - 13:21

3 réponses

6

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 Onze) est inférieure à la largeur que vous 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.

Par conséquent, si vous souhaitez définir une largeur d'image large sur 690px (et en supposant que votre thème pour enfants puisse prendre en charge cette largeur), vous devez définir $content_width dans votre enfant. Thème functions.php fichier . Je recommanderais d'utiliser une fonction de configuration du thème enfant, reliée à after_setup_theme() , comme suit:

<?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.

Depuis 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

Ainsi, en regardant le fichier% 20% functions.php , j'ai réalisé que j'avais formulé une mauvaise hypothèse: Twenty Eleven définit $content_width nue dans functions.php , plutôt que dans la fonction de configuration Thème, reliée à after_setup_theme . Donc, pour le remplacer, ** vous devez faire de même **.

Placez simplement les éléments suivants 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 .

(C’est un excellent exemple de la raison pour laquelle les thèmes doivent englober tout ce qui se trouve dans les rappels . :))

    
réponse donnée Chip Bennett 05.04.2012 - 18:36
0

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

    
réponse donnée Tom J Nowell 05.04.2012 - 16:11
0

Si vous souhaitez contrôler davantage la taille des images générées lorsque vous téléchargez des images, consultez la section Simple. Module d'extension des tailles

    
réponse donnée Scriptamateur 05.04.2012 - 15:46

Lire d'autres questions sur les étiquettes