add_image_size sigue sin funcionar incluso después de regenerar miniaturas
Me estoy encontrando con este problema muy frustrante donde add_image_size()
simplemente no parece funcionar en absoluto (de hecho, nunca lo he visto funcionar antes). Cuando digo que no funciona, me refiero a que no redimensiona/recorta (si quito el ancho/alto de mi CSS, la miniatura tendrá exactamente el mismo tamaño con el que la subí).
Tengo lo siguiente:
add_theme_support( 'post-thumbnails' )
add_image_size( 'small-thumb', 60, 60, true )
the_post_thumbnail( 'small-thumb' )
- Y lo más importante, sí, he estado regenerando mis miniaturas cerca de 50 veces después de cambiar el
add_image_size()
y no funciona.
Ahora tengo una pregunta relacionada con este problema: ¿Los estilos CSS como max-width
/ max-height
/ width
/ height
o cualquier otro afectan las funciones de miniaturas de WordPress?
¿Alguien sabe qué más puedo intentar para arreglar esto?
Gracias

Hay un par de cosas que verificar aquí.
Primero, asegúrate de que add_theme_support( 'post-thumbnails' )
se cargue antes que add_image_size( 'small-thumb', 60, 60, true )
Siempre puedes enlazar todo a través de una función con el hook after_setup_theme
. Yo siempre agrego estos en mi función de configuración del tema:
function wpse_setup_theme() {
add_theme_support( 'post-thumbnails' );
add_image_size( 'small-thumb', 60, 60, true );
}
add_action( 'after_setup_theme', 'wpse_setup_theme' );
Aparte de eso, todo debería funcionar si llamas correctamente a tu miniatura de publicación en el loop.
Sobre tu pregunta:
¿El estilo CSS como max-width/ max-height/ width / height o cualquier cosa afecta las funciones de miniaturas de WordPress?
No, no lo hace. CSS solo manipula cómo se muestra una miniatura en el front-end

Voy a intentarlo. Lo que he notado es que mi add_theme_support()
y add_image_size()
están en 2 funciones diferentes. ¿La función add_image_size()
debe llamarse usando ese hook (junto con add_theme_support()
)? ¿Importa si se llama en otro lugar?

Esto puede tener un efecto, como dije, podría ser que tu add_image_size()
se esté ejecutando antes que add_theme_support()
. Personalmente prefiero mantener todo esto junto en una sola función

Ahora entiendo la lógica. Finalmente veo qué estaba mal. El autor del tema colocó varios add_image_size()
en una función que no llamó (no enganchada a after theme setup). Guau... Muchas gracias Pieter, ya funciona. Supongo que de ahora en adelante me quedaré con tu método.

Otra cosa para verificar si tus imágenes esperadas no se están generando es comprobar si se están creando los tamaños de imagen.
Revisa tu directorio de subidas. Si no hay múltiples archivos para imágenes grandes (como los siguientes):
- image.jpg
- imagex150x150.jpg
- imagex300x300.jpg
Entonces podrías no tener instalada la biblioteca GD.
if ( !extension_loaded('gd') || !function_exists('gd_info') ) {
echo 'Biblioteca GD No Instalada';
} else {
echo 'Biblioteca GD Disponible';
}
Si la biblioteca GD no está instalada, entonces necesitas instalarla antes de que WordPress pueda crear tus tamaños de imagen adicionales.

En mi caso, hubo un error al regenerar una imagen porque ¡el archivo era demasiado grande! Por eso el sistema no generó versiones más pequeñas. Puedes ver que esto ocurre si la ejecución del plugin Regenerate Thumbnails termina demasiado rápido para esa imagen en particular Y si verificas por FTP, verás que NO existen versiones más pequeñas de la imagen. En este caso, simplemente descarga la imagen, redimensiona la mitad de su tamaño, elimínala de tu biblioteca multimedia y luego sube la versión más pequeña para volver a ejecutar Regenerate Thumbnails. Debería funcionar entonces.
Por cierto: la imagen problemática tenía 7594x3744@24bit@684kb
