Einstellungen in “Medien> Einstellungen” werden beim Einfügen von Bildern ignoriert

Wenn ich ein Bild hochlade, wird es automatisch so skaliert, wie ich es erwarte, aber die Größen zum Einfügen des Bildes scheinen die Einstellungen zu ignorieren, die ich in Einstellungen / Medien platziert habe.

In meinen Medieneinstellungen habe ich:

  • Miniaturansicht: 150 x 150
  • Medium: 300 x 300
  • Groß: 690 x 9999

Ich lade ein Bild von: 2226 x 1663 hoch .
WordPress erzeugt die korrekten Bildgrößen, gibt mir aber folgende Möglichkeiten zum Einfügen:

  • Miniaturbild: 150 x 150 (wie erwartet)
  • Medium: 300 x 224 (wie erwartet)
  • Groß: 640 x 447 (Falsch. Warum?)

Ich habe in den Foren nachgesehen und einen Vorschlag gefunden, dass ich meiner functions.php Datei folgendes hinzufüge:

update_option('large_size_w', 690); 

Dies hat jedoch nicht funktioniert.

Solutions Collecting From Web of "Einstellungen in “Medien> Einstellungen” werden beim Einfügen von Bildern ignoriert"

Ich glaube, Ihr Problem ist, dass der für die globale Variable $content_width gesetzte Wert (in Boilerplate 640px und in Twenty Eleven 584px ) kleiner ist als die Breite, die Sie über Settings -> Media festlegen .

WordPress überschreibt Ihre Benutzereinstellungen mit dem themenspezifischen Wert. Dies ist tatsächlich sinnvoll, da ein Theme die maximale Breite des Inhalts kennt und eine größere Bildbreite als das, für das das Theme entworfen wurde, würde das Theme-Layout wahrscheinlich durchbrechen.

Wenn Sie also die große Bildbreite auf 690 px (und unter der Annahme, dass Ihr untergeordnetes Thema diese Breite unterbringen kann) ändern müssen, definieren Sie $content_width in Ihrer Child-Theme-Datei functions.php . Ich würde empfehlen, eine Child-Theme-Setup-function zu verwenden, die in after_setup_theme() :

 < ?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 ); ?> 

Die Priorität 9 ist wahrscheinlich übertrieben, da die Aktionen Ihres untergeordneten Themas vor den Aktionen des übergeordneten Themas hinzugefügt werden. Mit der Priorität 9 wird jedoch garantiert, dass diese Aktion ausgetriggers wird, bevor das übergeordnete Theme-Setup mit der Priorität 10 ausgetriggers wird.

Da Ihre Child-Theme-Aktion zuerst $content_width , definiert das Child-Theme $content_width , und das übergeordnete Theme überschreibt es nicht (da es auch einen if ( ! isset() ) bedingten Wrapper verwendet).

Bearbeiten

Mit Blick auf die Twenty Eleven functions.php Datei erkannte ich, dass ich eine schlechte Annahme gemacht hatte: Twenty Eleven definiert $content_width nakedly in functions.php und nicht innerhalb der Theme-Setup-function, die in after_setup_theme . Also, um es zu übersteuern, ** müssen Sie auch tun **.

Platzieren Sie das Folgende am Anfang Ihrer functions.php Datei vor allen anderen functionsdefinitionen:

 $content_width = 690; 

Dies sollte funktionieren, da das Child Theme functions.php vor dem Parent Theme functions.php geparst wird.

(Dies ist ein Paradebeispiel dafür, warum Themes alle Dinge in Callbacks einbetten sollten. :))

Ändern Sie Ihre Einstellungen auf der Medienseite so, dass die maximale Einbettungsbreite 690 und nicht leer ist

Bildbeschreibung hier eingeben

Wenn Sie mehr Kontrolle darüber haben möchten, welche Bildgrößen beim Hochladen von Bildern generiert werden, sehen Sie sich das Plugin für einfache Bildgrößen an