Tieni presente che il $content_width
globale non viene utilizzato solo per le immagini, ma anche per gli oggetti incorporati, come i video. Quindi, qualsiasi soluzione non sarà semplicemente un caso di abbandono dell'uso / supporto di $content_width
se stesso.
Di solito un tema vincolerà le immagini dell'area di contenuto in alcuni modi:
- Grande Dimensione immagine: Definizione
$content_width
qualcosa di appropriato per la progettazione Tema
- Dimensione originale / immagine intera : definizione di una regola CSS per
#content img { max-width: XXX; height: auto; }
garantire che le immagini a dimensione intera che vengono inserite non rompano il layout
- Dimensione dell'immagine in miniatura : chiamata
set_post_thumbnail_size()
per definire la thumbnail
dimensione predefinita dell'anteprima dell'immagine / post in primo piano . (Nota: non raccomando personalmente l'uso di questo metodo. Definisci dimensioni personalizzate dell'immagine specifiche per una determinata posizione per un'immagine in evidenza, quindi chiama quella dimensione personalizzata nella specifica posizione del modello, tramite the_post_thumbnail( $size )
.)
Come hai scoperto, a causa del modo in cui WordPress seleziona con dimensioni dell'immagine intermedie da utilizzare per una determinata richiesta di immagine, tale richiesta potrebbe risultare in un'immagine ridimensionata del browser.
Valori definiti dal tema per immagini di grandi dimensioni
Un'opzione sarebbe quella di ridefinire le impostazioni per grandi dimensioni dell'immagine . (Procedi con cautela. Questo va bene per il tuo sito, ma un tema distribuito pubblicamente che pasticcia con le impostazioni di configurazione dell'utente è ... al massimo un'area grigia.)
Le impostazioni di dimensioni dell'immagine grandi sono memorizzate come:
$large_image_width = get_option( 'large_size_w' );
$large_image_height = get_option( 'large_size_h' );
Quindi, è possibile impostare tali valori in base al proprio $content_width
valore:
global $content_width;
update_option( 'large_size_w', $content_width );
update_option( 'large_size_h', $content_width );
(Naturalmente, dovresti mettere un po 'di sicurezza / controllo degli errori intorno a questo, come appropriato.)
Rimuovi opzione per inserire immagini a dimensione intera
Se desideri semplicemente impedire agli utenti di inserire immagini a dimensione intera (di nuovo: procedi con cautela; potrebbe trattarsi del territorio del plug-in), puoi filtrare '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' );
Ancora una volta: potresti voler aggiungere alcuni failaf sani qui, poiché questo filtro viene utilizzato in più di un posto.
Definire una dimensione dell'immagine personalizzata per le immagini a larghezza intera post
In relazione all'opzione precedente, è possibile definire una 'full-post-width'
dimensione dell'immagine:
global $content_width;
add_image_size( 'full-post-width', $content_width, $content_width, false );
Quindi, aggiungilo all'elenco delle opzioni disponibili:
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' );