add_image_size() para tipos de publicación específicos
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?
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.

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.

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);
}
}
