El recorte duro de the_post_thumbnail no funciona sin importar qué

8 dic 2011, 04:07:00
Vistas: 27.4K
Votos: 8

No importa lo que haga - no puedo hacer que funcione el modo de recorte duro en the_post_thumbnail.

Esto es lo que tengo:

add_image_size( 'Blog', 300, 300, true ); // Añade un nuevo tamaño de imagen con recorte duro
the_post_thumbnail('Blog');

También he probado:

set_post_thumbnail_size( 300, 300, true ); // Establece el tamaño predeterminado de la miniatura con recorte duro
the_post_thumbnail();

He intentado subir nuevas imágenes y usar el plugin "Regenerate Thumbnails", pero aún sin éxito. Ignora completamente el "true" y actúa como si fuera "false". Por ejemplo, en lugar de que la imagen sea 300x300, será 300x238 o algo así.

¿Alguien más ha experimentado esto? Mi biblioteca GD está habilitada...

Gracias por cualquier aporte que puedan ofrecer =)

5
Comentarios

Tu código se ve bien. Me he desesperado antes con esto y el problema que tuve fue porque las imágenes que mi cliente subía eran más pequeñas que el tamaño de recorte y, aunque escalaba la dimensión más grande, no escalaba ambas. Eso fue hace unas versiones pero podría ser algo para verificar.

patnz patnz
8 dic 2011 05:22:26

Sube una imagen más grande que 300x300 y debería funcionar.

Chris_O Chris_O
8 dic 2011 07:24:25

Gracias por tus comentarios. Desafortunadamente, he intentado subir imágenes grandes para que sean redimensionadas, y aún así no tengo suerte. Por ejemplo, cambié mi código a esto:

add_image_size( 'Blog', 200, 200, true );

La imagen que subí (recién) es de 359x500. El resultado final es que la imagen queda en 143x200. No tengo idea de qué más intentar jaja

De nuevo, ¡aprecio tus comentarios!

Tom Tom
8 dic 2011 21:41:01

Lo más probable es que sea un problema del servidor -> consulta mi respuesta a continuación.

Brian Fegter Brian Fegter
17 feb 2012 11:33:22

Dirigiéndome a la edición que acabo de aprobar: Por favor, añade las soluciones como respuesta. Puedes marcarlas como solución (marca de verificación verde debajo de las flechas de votación) dos días después.

kaiser kaiser
26 jul 2012 04:11:30
Todas las respuestas a la pregunta 8
2

Muchas veces la razón por la que no funciona es porque no has regenerado las miniaturas para todas tus imágenes.

Si has cambiado las dimensiones de tus imágenes, necesitarás regenerar tus miniaturas usando este plugin: http://wordpress.org/extend/plugins/regenerate-thumbnails/

26 jul 2012 05:12:54
Comentarios

No creo que puedas hacerlo desde la biblioteca de medios predeterminada, ¿verdad? Tuve que usar el plugin "Regenerate Thumbnails".

Simon East Simon East
15 sept 2014 12:17:10

Sí, es cierto. Olvidé mencionarlo hace un par de años en mis días más novatos :P Edité mi respuesta.

bryceadams bryceadams
15 sept 2014 15:09:56
4

Diría que probablemente no tengas las bibliotecas GD instaladas en tu servidor. Sin esto, solo obtendrás las subidas de archivos y no los recortes de imágenes.

Primero, haz una comprobación básica llamando a phpinfo() para ver si GD está instalado.

Instalación de GD en Linux

Si tienes acceso a la terminal, simplemente escribe este comando:

sudo apt-get install php5-gd

Necesitarás reiniciar el servidor después de instalar GD

Aquí está el comando para reiniciar Apache:

/etc/init.d/apache2 restart

Alojamiento Compartido

Si estás en un servidor compartido, necesitarás contactar a tu proveedor de hosting y pedirles que lo instalen en tu servidor.

Una Última Cosa

¿Tu tema tiene soporte para miniaturas?

add_theme_support('post-thumbnails');
17 feb 2012 11:32:40
Comentarios

Muchas gracias por responder, Brian =)

He confirmado que la biblioteca GD está instalada en mi servidor (estoy usando WAMP) - también me he encontrado con el mismo problema ocurriendo en mi servidor y en otros.

El problema me tiene perplejo, estoy atascado pensando que es algo que estoy haciendo mal pero todo parece estar como debería.

¿Alguna otra idea? Muchas gracias.

Tom Tom
19 feb 2012 05:45:30

@Tom Revisa la última edición. :)

Brian Fegter Brian Fegter
19 feb 2012 13:53:55

Gracias por el seguimiento. Sí tengo las miniaturas habilitadas, ya que puedo seleccionar la imagen destacada, y esta se muestra, simplemente no recorta a las dimensiones que le indico. ¿Podría estar en conflicto con algo más en mi tema? Por ahora estoy usando TimThumb para esta tarea, pero me encantaría usar las funciones de WordPress siempre que sea posible.. Gracias de nuevo =)

Tom Tom
20 feb 2012 19:53:48

Esta era la respuesta que estaba buscando. Sabía que tenía que instalar algún paquete, y solo estaba buscando cuál... gracias

Orabîg Orabîg
14 ene 2013 02:05:56
2

Finalmente he logrado solucionar este problema.

Parece que el recorte forzado funciona si estableces el tamaño de la imagen dentro de una función enganchada al hook "after_setup_theme".

Por lo tanto, el siguiente código funcionaría:

function add_custom_sizes() {
    add_image_size( 'portfolio-thumb', 243, 163, true );
    add_image_size( 'portfolio-image', 1074, 725, true );
    add_image_size( 'available-homes', 500, 279, true );
    add_image_size( 'idea-thumb', 146, 141, true );
}
add_action('after_setup_theme','add_custom_sizes');

Esto te permitirá obtener imágenes con recorte forzado usando los tamaños especificados mediante the_post_thumbnail().

Espero que esto también ayude a alguien más.

22 nov 2012 19:21:46
Comentarios

Probé todo, incluyendo esto, y aún no funcionó

Tintinabulator Zea Tintinabulator Zea
3 oct 2018 06:44:23

Esto tampoco funciona para mí.

Lars SG Lars SG
11 feb 2021 07:30:57
0

En lugar de definir el tamaño de la imagen destacada como "blog", ¿por qué no simplemente configurar la imagen destacada explícitamente en la plantilla donde quieres que aparezca?...

the_post_thumbnail($post->ID, array(300, 300, true));
31 dic 2011 00:12:31
0

Acabo de tener este mismo problema y la solución para mí fue regenerar las miniaturas como sugirió bryceadams (no tengo suficientes puntos para votar por su respuesta, desafortunadamente).

Advertencia: Las imágenes deben estar almacenadas localmente, no de forma remota. Presumiblemente no se generan miniaturas para imágenes remotas.

9 may 2013 13:28:14
0

En mi caso, este problema fue causado por los permisos de los archivos en las imágenes. Había copiado las imágenes de un servidor a otro, olvidando cambiar los permisos de propiedad. Cuando se establecieron nuevos tamaños de imagen y las regeneré, las imágenes antiguas no se sobrescribieron como deberían haberlo hecho.

Para solucionarlo, me conecté a mi servidor mediante SSH, navegué hasta la carpeta wp-content/uploads y restablecí los permisos de propiedad de todas las imágenes allí. Por ejemplo:

chown -R {usuario web}:{grupo} .

Espero que esto ayude a alguien.

27 may 2015 13:01:28
0

Nunca tendrás una imagen recortada de forma fija que no sean los tamaños predeterminados. No obtendrás esta respuesta en los foros de WP, o si lo haces, te mostrarán una zanahoria durante semanas hasta que te pongas ansioso y te bloqueen o lo arreglen en silencio.

Las imágenes recortadas de forma fija solo son para:

  • Miniatura
  • Todos los demás tamaños EXCEPTO miniatura Y TUS TAMAÑOS PERSONALIZADOS

Las cosas que no son posibles NUNCA se muestran en el front-end o se intenta ocultarlas en los foros tanto como sea posible (nuestro proyecto gratuito .org es su producto .com), incluso si las opciones anteriores te han hecho arrancarte el cabello durante meses.

La segunda opción debería decir "TODOS LOS DEMÁS TAMAÑOS EXCEPTO LOS TUYOS"

Estoy desarrollando un plugin para eso, y un poco de magia extra. Lo terminaré pronto, pero necesitaré algo de ayuda para publicarlo en el directorio de plugins ya que ¡he sido baneado! jeje (por ayudar a otros con errores no reportados (o ignorados))

27 oct 2012 01:11:50
0

Tuve el mismo problema e instalé un plugin que permite regenerar una/algunas/todas tus imágenes. Este es el plugin: [http://wordpress.org/plugins/regenerate-thumbnails/]

No encontré la forma de hacerlo desde la interfaz de administración de WP excepto si eliminas y subes la imagen nuevamente.

Otra forma de hacerlo, si no quieres usar un plugin, sería hacerlo con funciones de PHP

function wp_regenerate() {
include( ABSPATH . 'wp-admin/includes/image.php' );
wp_generate_attachment_metadata( $thumbnail_id, $absolute_path_to_image ); }

add_action('after_setup_theme', 'wp_regenerate');

donde $thumbnail_id y $absolute_path_to_image deben ser configurados con los valores que desees.

Gracias a @briceadams y @adriaticiq. Todavía no puedo votarles pero lo haré tan pronto como me sea permitido.

30 dic 2013 17:45:29