Das $content_width
GLOBAL in WordPress wirkt sich auf viele Themen und sogar einige Plugins aus, indem es die Größe von Bildern begrenzt und in Posts einbettet. Dies ist eine Voraussetzung für Themen, die an wordpress.org gesendet werden.
Es wird eingestellt durch:
$content_width = 584; // Twenty Twelve example
Wenn Sie ein großes Bild (Standard 1024 x 1024) in einen Beitrag einfügen, führt dies zu folgenden Ergebnissen:
src="../wp-content/uploads/2013/02/IMG_1390-1024x682.jpg" width="584" height="328"
Wenn Sie stattdessen diese globale Einstellung entfernen und die tatsächliche Bildgröße einfügen, führt add_image_size
dies zu folgenden Ergebnissen:
src="../wp-content/uploads/2013/02/IMG_13901-584x328.jpg" width="584" height="328"
Das Entfernen der globalen und das Einfügen großer Bilder, was sehr häufig vorkommt , führt häufig zu einer Einsparung von mehr als 2x. Bei Seiten mit mehreren Bildern werden beim Laden von Seiten Hunderte von KB gespeichert.
Ist das Verwenden add_image_size
und Entfernen der Funktion zum Einfügen von Bildern in voller Größe keine bessere Option?
ps. Ich habe hier mit genaueren Daten darüber geschrieben
quelle
Antworten:
Denken Sie daran, dass das
$content_width
Global nicht nur für Bilder, sondern auch für eingebettete Objekte wie Videos verwendet wird. Eine Lösung besteht also nicht nur darin, die Nutzung / den Support von sich$content_width
selbst einzustellen.Normalerweise schränkt ein Thema die Bilder im Inhaltsbereich auf verschiedene Arten ein:
$content_width
für das Design des Themas geeigneten Objekts#content img { max-width: XXX; height: auto; }
Vollbildgröße : Definieren Sie eine CSS-Regel, um sicherzustellen, dass eingefügte Vollbildbilder das Layout nicht beschädigenset_post_thumbnail_size()
auf, um die Standardgröße für Featured Image / Post Thumbnail zu definierenthumbnail
. (Hinweis: Ich empfehle diese Methode nicht persönlich. Definieren Sie benutzerdefinierte Bildgrößen für einen bestimmten Speicherort für ein ausgewähltes Bild und rufen Sie diese benutzerdefinierte Größe an dem bestimmten Speicherort für die Vorlage über aufthe_post_thumbnail( $size )
.)Wie Sie herausgefunden haben, kann aufgrund der Art und Weise, wie WordPress eine Zwischenbildgröße für eine bestimmte Bildanforderung auswählt, diese Anforderung zu einem browserskalierten Bild führen.
Themendefinierte Werte für ein großes Bild
Eine Möglichkeit wäre, die Einstellungen für große Bildabmessungen neu zu definieren . (Fahren Sie mit Vorsicht fort. Dies ist in Ordnung für Ihre eigene Website, aber ein öffentlich verbreitetes Thema, das mit den Benutzerkonfigurationseinstellungen in Konflikt gerät, ist bestenfalls ein grauer Bereich.)
Die Einstellungen für große Bildabmessungen werden gespeichert als:
So könnten Sie setzen diese Werte nach Ihrem
$content_width
Wert:(Natürlich möchten Sie dies gegebenenfalls mit einer Ausfallsicherheits- / Fehlerprüfung umgehen.)
Entfernen Sie die Option, um Bilder in voller Größe einzufügen
Wenn Sie einfach verhindern möchten, dass Benutzer Bilder in voller Größe einfügen (erneut: Vorsicht, dies kann Plugin-Gebiet sein), können Sie Folgendes filtern
'image_size_names_choose'
:Nochmals: Vielleicht möchten Sie hier ein paar vernünftige Fehlercafés hinzufügen, da dieser Filter an mehreren Stellen verwendet wird.
Definieren Sie eine benutzerdefinierte Bildgröße für Bilder mit voller Post-Breite
In Bezug auf die vorherige Option können Sie eine
'full-post-width'
Bildgröße definieren :Fügen Sie es dann der Liste der verfügbaren Optionen hinzu:
quelle
get_option
Werte einzustellen. Der Rest ähnelt dem Inhalt, den ich verwende, gist.github.com/wycks/4949242 , der in meinem Link verlinkt wurde. Es scheint auch ein grauer Bereich zu sein, wie man dies tatsächlich skaliert, wenn das Thema geändert wird.$content_width
oder Nichteinstellen immer noch standardmäßig auf eingebettete Objekte angewendet wird, denke ich.image_size_names_choose
Filter noch nie gesehen ! Ich habe dieses ganze Feld ersetzt, um meine benutzerdefinierten Größen bis jetzt zu erhalten. Ist das neu in 3.5 Chip?add_image_size
mehrsprachig zu machen , und dann dachte ich, es wäre auch gut, für dieses Bildgrößenproblem zu verwenden. Wenn Sie keine Lokalisierung benötigen, können Sie diese einfach in das Array einfügen, anstatt sie fest zu codieren.Ja, ich denke schon. Um das
$content_width
Problem für Themen zu umgehen, die an das Repo gesendet wurden, verwende ich Optionsfilter, um die Größen zu erzwingen, die ich für das Design ausgewählt habe.quelle