Lembre-se de que o $content_width
global não é usado apenas para imagens, mas também para objetos incorporados, como vídeo. Portanto, qualquer solução não será apenas um caso de descartar o uso / suporte de $content_width
em si.
Normalmente, um tema restringe as imagens da área de conteúdo de algumas maneiras:
-
Grande Tamanho da imagem: definindo
$content_width
algo apropriado para o design do tema -
Original / Full Tamanho da imagem: definindo uma regra de CSS para
#content img { max-width: XXX; height: auto; }
para garantir que imagens em tamanho real inseridas não quebrem o layout -
Miniatura Tamanho da imagem: Chamando
set_post_thumbnail_size()
para definir a imagem em destaque / pós-padrão Thumbnailthumbnail
Tamanho. (Observação: não recomendo pessoalmente o uso desse método. Defina tamanhos de imagem personalizados específicos para um determinado local para uma imagem em destaque e, em seguida, chame esse tamanho personalizado no local do modelo específico, viathe_post_thumbnail( $size )
.)
Como você descobriu, devido à maneira como o WordPress seleciona o tamanho de imagem intermediário a ser usado para qualquer solicitação de imagem, essa solicitação pode resultar em uma imagem em escala do navegador.
Valores definidos pelo tema para imagem grande
Uma opção seria redefinir as configurações para dimensões de imagem grandes . (Prossiga com cuidado. Isso é bom para o seu próprio site, mas um tema distribuído publicamente que mexe com as configurações do usuário é ... na melhor das hipóteses.)
As grandes configurações de dimensão da imagem são armazenadas como:
$large_image_width = get_option( 'large_size_w' );
$large_image_height = get_option( 'large_size_h' );
Então, você poderia definir esses valores de acordo com seu $content_width
value:
global $content_width;
update_option( 'large_size_w', $content_width );
update_option( 'large_size_h', $content_width );
(Claro, você gostaria de colocar um pouco de verificação de erros / erros em torno disso, conforme apropriado).
Remover opção para inserir imagens em tamanho real
Se você simplesmente quiser impedir que os usuários insiram imagens em tamanho real (novamente: prossiga com cautela; isso pode ser território de plug-in), você pode filtrar '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' );
Mais uma vez: talvez você queira adicionar algumas falhas sãs aqui, pois esse filtro é usado em mais de um lugar.
Defina um tamanho de imagem personalizado para imagens com largura total de postagem
Relacionado à opção anterior, você pode definir um tamanho de imagem 'full-post-width'
:
global $content_width;
add_image_size( 'full-post-width', $content_width, $content_width, false );
Em seguida, adicione-o à lista de opções disponíveis:
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' );