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

15
set_post_thumbnail_size( 80, 80, true ); // true for all post types

Supongamos que tengo dos tipos de publicaciones en juego en mi blog: Publicación, Video y Producto. Es posible que desee un tamaño de imagen de 80x80 para mis publicaciones, pero 100x100 para mis videos y 50x100 para mis productos. Que yo sepa, me veo obligado a crear miniaturas para mis imágenes de publicación en las dimensiones de 100x100 y también de 50x100. Y para mis productos, me veo obligado a crear miniaturas que son 80x80 y 100x100, aunque no las use nunca.

¿Existe una manera de crear tamaños de imagen basados en tipos de publicaciones para que no termines haciendo un montón de imágenes que no planeas usar y desperdiciando recursos que podrían usarse en otros lugares?

    
pregunta Sampson 26.11.2010 - 22:28

3 respuestas

11

No hay manera de basar los tamaños de imagen en el tipo de publicación, ya que las imágenes aún no están adjuntas a una publicación cuando las carga y se crean los tamaños de imagen intermedios (cuando solo las agrega a través de "New Media"). ni siquiera se adjunta a ninguna publicación en absoluto).

Sin embargo, recientemente creó dos complementos que juntos harán lo que quieras. Las imágenes intermedias virtuales interceptarán la creación de los tamaños de imagen intermedios: no se crearán en el disco, pero seguirán existiendo en la matriz de metadatos. Esto hace que WordPress piense que existen para que puedas usarlos como imágenes normales. El complemento complementario, On-Demand Resizer creará tamaños de imagen faltantes cuando se soliciten. La primera vez que se solicita la creación de la imagen, todas las solicitudes posteriores solo recibirán la nueva imagen creada.

Estos complementos necesitan una reescritura antes de colocarlos en el directorio de complementos de WordPress, pero deberían estar seguros. O al menos tenga TODO de comentarios donde no sean seguros.

    
respondido por el Jan Fabry 26.11.2010 - 22:40
2

Publiqué algún código en este otro hilo que establece un transitorio con el tipo de publicación al cargar una imagen, y luego verifica el valor de ese transitorio y ajusta el tamaño de la miniatura posterior al final de la carga. No es perfecto ni a prueba de balas, pero al menos debería demostrar el concepto.

    
respondido por el goldenapples 30.12.2010 - 00:41
0

Se me ocurrió la siguiente solución. Crea imágenes solo para el tipo de publicación personalizada sin crear otras adicionales. El único problema es que si usa complementos como campos personalizados avanzados, al tratar de representar el campo de la galería, solo muestra los tamaños de imágenes de wordpress predeterminados: 'miniatura', 'medio', 'grande' y no puede acceder a los tamaños de imagen 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']);
// Post_Name Image Sizes ======================================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

    
respondido por el No0n 22.05.2014 - 19:16