Tenga en cuenta que el $content_width
global no solo se usa para imágenes, sino también para objetos incrustados, como video. Por lo tanto, cualquier solución no será simplemente un caso de caída del uso / soporte de $content_width
sí mismo.
Por lo general, un tema restringirá las imágenes del área de contenido de varias maneras:
- Tamaño de imagen grande: definir
$content_width
algo apropiado para el diseño del tema
- Tamaño de imagen original / completa : definición de una regla CSS para
#content img { max-width: XXX; height: auto; }
garantizar que las imágenes de tamaño completo que se insertan no rompan el diseño
- Tamaño de imagen en miniatura : Llamando
set_post_thumbnail_size()
para definir el thumbnail
tamaño predeterminado de Imagen destacada / Publicar miniatura . (Nota: no recomiendo personalmente usar este método. Defina tamaños de imagen personalizados específicos para una ubicación determinada para una imagen destacada, y luego llame a ese tamaño personalizado en la ubicación específica de la plantilla, a través de the_post_thumbnail( $size )
).
Como ha descubierto, debido a la forma en que WordPress selecciona con un tamaño de imagen intermedio para usar en cualquier solicitud de imagen dada, esa solicitud podría generar una imagen a escala del navegador.
Valores definidos por tema para imagen grande
Una opción sería redefinir la configuración para grandes dimensiones de imagen . (Proceda con precaución. Esto está bien para su propio sitio, pero un Tema distribuido públicamente que se mete con los ajustes de configuración del usuario es ... área gris en el mejor de los casos).
La configuración de dimensión de imagen grande se almacena como:
$large_image_width = get_option( 'large_size_w' );
$large_image_height = get_option( 'large_size_h' );
Por lo tanto, puede establecer esos valores de acuerdo con su $content_width
valor:
global $content_width;
update_option( 'large_size_w', $content_width );
update_option( 'large_size_h', $content_width );
(Por supuesto, desearía poner un poco de verificación de seguridad / error alrededor de esto, según corresponda).
Eliminar opción para insertar imágenes de tamaño completo
Si simplemente desea evitar que los usuarios inserten imágenes de tamaño completo (nuevamente: proceda con precaución; esto puede ser territorio de Complementos), puede 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' );
Una vez más: es posible que desee agregar algunas fallas de seguridad sensatas aquí, ya que este filtro se usa en más de un lugar.
Defina un tamaño de imagen personalizado para imágenes de ancho completo posterior
En relación con la opción anterior, puede definir un 'full-post-width'
tamaño de imagen:
global $content_width;
add_image_size( 'full-post-width', $content_width, $content_width, false );
Luego, agréguelo a la lista de opciones disponibles:
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' );