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:
- Große Bildgröße: Definieren eines
$content_width
für das Design des Themas geeigneten Objekts
- Original /
#content img { max-width: XXX; height: auto; }
Vollbildgröße : Definieren Sie eine CSS-Regel, um sicherzustellen, dass eingefügte Vollbildbilder das Layout nicht beschädigen
- Thumbnail- Bildgröße: Ruft
set_post_thumbnail_size()
auf, um die Standardgröße für Featured Image / Post Thumbnail zu definieren thumbnail
. (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 auf the_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:
$large_image_width = get_option( 'large_size_w' );
$large_image_height = get_option( 'large_size_h' );
So könnten Sie setzen diese Werte nach Ihrem $content_width
Wert:
global $content_width;
update_option( 'large_size_w', $content_width );
update_option( 'large_size_h', $content_width );
(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'
:
function wpse86950_filter_image_size_names_choose( $possible_sizes ) {
unset( $possible_sizes['full'] );
return $possible_sizes;
}
add_filter( 'image_size_names_choose', 'wpse86950_filter_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 :
global $content_width;
add_image_size( 'full-post-width', $content_width, $content_width, false );
Fügen Sie es dann der Liste der verfügbaren Optionen hinzu:
function wpse86950_filter_image_size_names_choose( $possible_sizes ) {
// Unset full image size
unset( $possible_sizes['full'] );
// Add full-post-width image size
$possible_sizes['full-post-width'] = 'Full Post Width';
// Return array
return $possible_sizes;
}
add_filter( 'image_size_names_choose', 'wpse86950_filter_image_size_names_choose' );