Saltar al contenido

Wordpress – ¿Por qué WordPress recorta automáticamente todas mis imágenes?

Te recomendamos que pruebes esta resolución en un ambiente controlado antes de pasarlo a producción, un saludo.

Solución:

WordPress por defecto está diseñado para generar 3 tipos de recorte de cualquier imagen cargada (Medios):

  • Miniatura (normalmente 150 px × 150 px)
  • Medio (normalmente 300px × 300px)
  • Grande (normalmente 1024px × 1024px)

Es para garantizar la velocidad del sitio con diferentes tamaños cuando sea necesario. Entonces, al cargar la imagen original, habría al menos 4 archivos-

  1. El archivo original (no recortado),
  2. Grande,
  3. Medio y
  4. Miniatura.

Como ya lo sabes, desde /wp-admin/options-media.php, también puede cambiar las dimensiones del tamaño predeterminado. Por lo tanto, aún puede usar los tamaños predeterminados para su propósito personalizado. Pero si aún necesita un nuevo tamaño diferente a los tres, WordPress le permite agregar nuevos tamaños de imagen también.

Utilizando add_image_size() La función con el parámetro deseado le permite agregar un nuevo tamaño para su sitio. Utilice la función en su functions.php para agregar el tamaño de imagen deseado:

add_image_size( $name, $width, $height, $crop );

Donde –
$name : string escriba el nombre entre comillas simples, es decir 'portfolio'
$width: entero escribe el ancho que quieras, es decir 500 (en px)
$height: integet escribe la altura que quieras, es decir 300 (en px)
$crop: booleano escribir true si desea recortar la imagen, de lo contrario use false

Por lo general, podemos llamar a diferentes imágenes destacadas en cualquier lugar de nuestro tema usando:

the_post_thumbnail( 'medium' ); //it will display only the medium size of the original image

Si desea usar su nuevo tamaño, use:

the_post_thumbnail( 'portfolio' ); //as I named my size as 'portfolio'

ADVERTENCIA: Como WordPress está generando 3 tamaños de imagen personalizables por defecto, está creando 4 archivos para cada imagen. El uso de más tamaños nuevos aumentará la cantidad de archivos en el host de su sitio. Por lo tanto, el uso de más tamaños de imagen será un problema para el problema del espacio de host de su sitio: consumirá más espacios del sitio.

EDITAR

Y después de agregar cada nuevo tamaño de imagen, un complemento más importante es:

» Regenerar miniatura – Complemento de WordPress

En realidad, el tamaño de imagen recién asignado solo puede estar disponible en imágenes recién cargadas. Por lo tanto, para obtener el nuevo tamaño para todas las imágenes cargadas anteriormente, necesitará que el complemento esté instalado y regenere todas las miniaturas nuevamente. Sería una medida única que duraría para siempre *.

Y tu respuesta principal debería ser:
Velocidad del sitio: WordPress recorta imágenes para aumentar la velocidad del sitio. Si usa Google PageSpeed, sabrá que sugiere:

Sirve imágenes a escala

Dimensionar correctamente las imágenes puede ahorrar muchos bytes de datos.
Aprende más

EDITAR 2

Como ya se le sugirió, si su complemento usa un add_image_size() función, puede crear un nuevo tamaño de imagen. Entonces, después de deshabilitar sus complementos, si usa el complemento Regenerar miniaturas para regenerar las miniaturas, obtendrá los tamaños reales. Si eso no ayuda, revise el tema de su tema. functions.php o cualquier archivo de funciones agregadas para tal add_image_size() función, y ahora sabe qué hacer.

Sí, WordPress cambia el tamaño y recorta todas las imágenes según lo que haya definido su tema como @Gerard ya explicó en su respuesta. Entonces, el último argumento booleano para add_image_size() es recortar o no. Tenga en cuenta que esto no define la posición del recorte. Para alterar ese comportamiento, mire esta respuesta, por ejemplo.

¿Qué sucede dentro del núcleo?

Como ya has visto en la fuente de add_image_size(), WP usa el global $_wp_additiona_image_sizes para almacenar y manejar la configuración para la generación de su imagen. Ahora, cuando subes una imagen, la clase WP_Image_Editor entra en juego y, dependiendo de las extensiones PHP habilitadas en su servidor, llama WP_Image_Editor_GD o WP_Image_Editor_Imagick. Ahora ambos Singleton tienen un resize() método que llama image_resize_dimensions(). Al final, image_resize_dimensions() lo hace no cambiar el tamaño o recortar la imagen. Simplemente calcula los valores.

Esto se hace mediante el método crop() en la clase Imagick y usando PHP nativo imagecopyresampled() dentro de la clase GD.

¿Cómo deshabilitar el recorte?

Primero, tenemos muchas posibilidades:

  • detecta qué clase está en uso (qué extensión de PHP es compatible) y luego intercepta lo que se usa para recortar (ver arriba).
  • Cortocircuite todo el proceso y deje image_resize_dimensions() haz su trabajo.

Usaremos el método posterior aquí. No dude en agregar su propia solución como respuesta separada. Esto es lo que nos ofrece el núcleo: un filtro que contiene todos los parámetros.

$output = apply_filters( 'image_resize_dimensions', null, $orig_w, $orig_h, $dest_w, $dest_h, $crop ); 

Ahora el primer argumento es null, que le dice al core en la siguiente línea si queremos sobrescribir lo que esta función hace internamente, y reemplazarlo con nuestro propio comportamiento, o no. Entonces, si devolviéramos algo aparte de null, entonces esto es lo que utilizará el núcleo. Tenga en cuenta que puede poner cualquier cosa allí, pero aún así, el núcleo esperará el mismo valor de retorno que image_resize_dimensions() utiliza por defecto. De los comentarios en línea:

El regreso array coincide con los parámetros imagecopyresampled():

int dst_x, int dst_y,

int src_x, int src_y,

int dst_w, int dst_h,

int src_w, int src_h

Ahora, para deshabilitar el recorte, tendríamos que reemplazar (en otras palabras: clonar) todos los componentes internos, algo que queremos evitar. Por lo tanto, estamos usando un “filtro de una sola vez” que se desactiva solo. Estamos haciendo eso para usar los componentes internos, pero simplemente deshacernos de lo que no necesitamos.

Ahora el recorte está deshabilitado En todas partes. Si está ejecutando varios sitios o no quiere pensar en si este complemento está habilitado, simplemente vaya y utilícelo como un complemento mu.

Tenga en cuenta que lo anterior no se prueba, sino que se borra de mi cabeza después de leer la fuente principal.

información adicional

Puede encontrar más información sobre las clases de manejo de imágenes en las diapositivas de Marko de WordCamp Europe y el video de la presentación en WordPress.tv.

Normalmente es porque un tema de Wordpress usa las miniaturas en su código: en bucles, galerías, etc. Se define en el archivo functions.php:

add_image_size( $name, $width, $height, $crop );

Por ejemplo, así:

add_theme_support('post-thumbnails');
add_image_size('custom-thumbnail', 80, 80, true );
add_image_size('medium-thumbnail', 180, 120, true );
add_image_size('large-thumbnail', 571, 300, true );

No te recomiendo que elimines el código si realmente quieres mantener el buen funcionamiento de tu tema. Si desea eliminarlo, deberá eliminar las llamadas en los otros archivos donde se usa; comúnmente en el archivo loop.php.

Más adelante puedes encontrar las críticas de otros programadores, tú todavía eres capaz insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *