add_image_size() para tipos de publicación específicos

26 nov 2010, 23:28:23
Vistas: 12.9K
Votos: 19
set_post_thumbnail_size( 80, 80, true ); // verdadero para todos los tipos de publicación

Supongamos que tengo dos tipos de publicación en mi blog: Post, Video y Producto. Puedo querer un tamaño de imagen de 80x80 para mis posts, pero 100x100 para mis videos y 50x100 para mis Productos. Hasta donde sé, me veo obligado a crear miniaturas para mis imágenes de Post en las dimensiones de 100x100 y también 50x100. Y para mis productos, me veo obligado a crear miniaturas que son 80x80 y 100x100, aunque nunca las usaré.

¿Existe alguna manera de crear tamaños de imágenes basados en tipos de publicación para no terminar generando un montón de imágenes que no planeas usar, y desperdiciar recursos que podrían usarse en otra parte?

4
Comentarios

Me he encontrado exactamente con la misma necesidad.

MikeSchinkel MikeSchinkel
27 nov 2010 00:34:09

¿Qué sucede si utilizas esta función image_resize en el tema en las partes donde necesitas ese tamaño de imagen? También puedes escribir una función abreviada para usos múltiples dependiendo del contexto.

User User
21 jun 2012 23:07:55

Parece un descuido obvio para mí, ¿realmente esto todavía no se ha solucionado?

Nathan Hornby Nathan Hornby
21 feb 2017 19:18:32

Tamaños de imagen para tipos de contenido https://wordpress.org/plugins/post-types-image-sizes/

Parsa Parsa
28 dic 2019 10:40:08
Todas las respuestas a la pregunta 3
1
13

No hay forma de basar los tamaños de las imágenes en el tipo de publicación, ya que las imágenes aún no están adjuntas a una publicación cuando las subes y se crean los tamaños intermedios de las imágenes (cuando las agregas mediante "Medios nuevos", ni siquiera están adjuntas a ninguna publicación).

Sin embargo, recientemente creé dos plugins que juntos harán lo que deseas. Virtual intermediate images interceptará la creación de los tamaños intermedios de las imágenes: no se crearán en el disco, pero seguirán existiendo en el array de metadatos. Esto hace que WordPress piense que existen para que puedas usarlas como imágenes normales. El plugin complementario, On-Demand Resizer, creará los tamaños de imagen faltantes cuando se soliciten. La primera vez que se solicite la imagen, se creará; todas las solicitudes posteriores simplemente servirán la imagen recién creada.

Estos plugins necesitan una reescritura antes de ponerlos en el directorio de plugins de WordPress, pero deberían ser seguros. O al menos tener comentarios TODO donde no sean seguros.

26 nov 2010 23:40:35
Comentarios

¡Bien!

MikeSchinkel MikeSchinkel
27 nov 2010 00:36:11
0

Publiqué un código en este otro hilo que establece un transitorio con el tipo de publicación cuando se sube una imagen, y luego verifica el valor de ese transitorio y ajusta el tamaño de la imagen destacada en consecuencia cuando se termina la carga. No es perfecto ni infalible, pero al menos debería demostrar el concepto.

30 dic 2010 01:41:43
0

Se me ocurrió la siguiente solución. Crea imágenes solo para el tipo de publicación personalizada sin crear ninguna adicional. El único problema es que si usas plugins como Advanced Custom Fields, al intentar renderizar el campo de galería solo muestra los tamaños de imágenes predeterminados de WordPress: 'thumbnail', 'medium', 'large' y no puedes acceder a los tamaños de imágenes personalizados creados.

if ( function_exists ('add_image_size') ) {

function remove_default_img($sizes) {
    unset( $sizes['medium']);
    unset( $sizes['large']); 
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');

$type = get_post_type($_REQUEST['post_id']);
// Tamaños de Imagen para Nombre_Personalizado =================================
if ( $type === "Nombre_Personalizado" || $post_type === "Nombre_Personalizado" ) {
add_image_size('tamaño_personalizado_img', 165, 249, true);
}

}

22 may 2014 20:16:18