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á meramente um caso de descartar o uso / suporte de $content_width
si mesmo.
Geralmente, um tema restringe as imagens da área de conteúdo de algumas maneiras:
- Grande Tamanho da Imagem: Definindo
$content_width
algo apropriado para o projeto temático
- Tamanho original / imagem completa : definindo uma regra CSS para
#content img { max-width: XXX; height: auto; }
garantir que as imagens em tamanho original inseridas não quebrem o layout
- Tamanho da imagem em miniatura : ligando
set_post_thumbnail_size()
para definir o thumbnail
tamanho padrão Imagem em destaque / Publicar miniatura . (Observação: eu não recomendo usar esse método pessoalmente. Defina tamanhos de imagem personalizados específicos para um determinado local para uma imagem em destaque e chame esse tamanho personalizado no local do modelo específico, via the_post_thumbnail( $size )
.)
Como você descobriu, devido à maneira como o WordPress seleciona com tamanho de imagem intermediário para usar em qualquer solicitação de imagem, essa solicitação pode resultar em uma imagem em escala do navegador.
Valores definidos por tema para imagem grande
Uma opção seria redefinir as configurações para grandes dimensões de imagem . (Prossiga com cuidado. Isso é bom para o seu próprio site, mas um Tema distribuído publicamente que mexe com as definições de configuração do usuário é ... na melhor das hipóteses).
As configurações de dimensão de imagem grande são armazenadas como:
$large_image_width = get_option( 'large_size_w' );
$large_image_height = get_option( 'large_size_h' );
Portanto, você pode definir esses valores de acordo com o seu $content_width
valor:
global $content_width;
update_option( 'large_size_w', $content_width );
update_option( 'large_size_h', $content_width );
(Obviamente, você deve colocar algumas verificações à prova de falhas / erros, conforme apropriado.)
Opção Remover para inserir imagens em tamanho normal
Se você simplesmente deseja impedir que os usuários insiram imagens em tamanho real (novamente: continue com cuidado; esse pode ser o território do 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' );
Novamente: convém adicionar algumas falhas de segurança aqui, pois esse filtro é usado em mais de um local.
Definir um tamanho de imagem personalizado para imagens com largura total após a publicação
Relacionado à opção anterior, você pode definir um 'full-post-width'
tamanho de imagem:
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' );