wake-up-neo.net

Einstellungen unter 'Medien> Einstellungen' werden beim Einfügen von Bildern ignoriert

Wenn ich ein Bild hochlade, wird die Größe automatisch wie erwartet geändert. Die Größen zum Einfügen des Bildes scheinen jedoch die Einstellungen zu ignorieren, die ich unter Einstellungen/Medien vorgenommen habe.

In meinen Medieneinstellungen habe ich:

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

Ich lade ein Bild von: 2226 x 1663 hoch.
Wordpress generiert die richtigen Bildgrößen, bietet mir jedoch die folgenden Einfügemöglichkeiten:

  • 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, der meiner functions.php-Datei Folgendes hinzufügt:

update_option('large_size_w', 690);

Dies hat jedoch nicht funktioniert.

4
Gary

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

WordPress überschreibt Ihre Benutzereinstellung mit dem themenspezifischen Wert. Dies ist tatsächlich sinnvoll, da ein Thema seine maximale Inhaltsbreite kennt und die Verwendung einer größeren Bildbreite als die, für die das Thema entworfen wurde, sehr wahrscheinlich das Layout des Themas stören würde.

Die Lösung, wenn Sie die große Bildbreite in 690px ändern müssen (und davon ausgehen, dass Ihr untergeordnetes Design diese Breite aufnehmen kann), besteht darin, in Ihrem untergeordneten Design $content_width zu definieren, functions.php file . Ich würde empfehlen, eine Child Theme-Setup-Funktion zu verwenden, die in after_setup_theme() eingebunden ist, wie folgt:

<?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 ohnehin vor den Aktionen des übergeordneten Themas hinzugefügt werden. Die Verwendung von Priorität 9 stellt jedoch sicher, dass diese Aktion bei Priorität 10 ausgelöst wird, bevor das übergeordnete Design-Setup ausgelöst wird.

Da Ihre untergeordnete Designaktion zuerst ausgelöst wird, definiert das untergeordnete Design $content_width und das übergeordnete Design überschreibt sie nicht (da es auch einen bedingten Wrapper für if ( ! isset() ) verwendet).

Bearbeiten

Als ich mir die Twenty Eleven functions.php-Datei ansah, stellte ich fest, dass ich eine schlechte Annahme gemacht hatte: Twenty Eleven definiert $content_width nackt in functions.php und nicht in der Theme-Setup-Funktion, die in after_setup_theme eingebunden ist. Also, um es zu überschreiben, müssen Sie ebenfalls ** tun.

Fügen Sie einfach Folgendes oben in Ihre functions.php -Datei ein, bevor Sie andere Funktionsdefinitionen vornehmen:

$content_width = 690;

Dies sollte funktionieren, da das untergeordnete Design functions.php vor dem übergeordneten Design functions.php analysiert wird.

(Dies ist ein hervorragendes Beispiel dafür, warum Themen alle Dinge in Rückrufe einschließen sollten . :))

6
Chip Bennett

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.

0
Scriptamateur

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

enter image description here

0
Tom J Nowell