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


18
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 Post en las dimensiones de 100x100 y también 50x100. Y para mis productos, me veo obligado a crear miniaturas de 80x80 y 100x100, aunque nunca las usaré.

¿Hay alguna manera de crear tamaños de imagen que se basen en tipos de publicación para que no termines haciendo un montón de imágenes que no planeas usar y desperdiciando recursos que podrían usarse en otro lugar?


Me he encontrado exactamente con la misma necesidad.
MikeSchinkel

¿Qué sucede si usa esta función image_resize en el tema en las partes donde necesita ese tamaño de imagen?, También puede escribir una función abreviada para múltiples usos según el contexto.

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

Respuestas:


12

No hay forma de basar los tamaños de imagen en el tipo de publicación, ya que las imágenes aún no se adjuntan a una publicación cuando las sube y se crean los tamaños de imagen intermedios (cuando las agrega a través de "Nuevos medios", ni siquiera se adjuntan a cualquier 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 aún existen en la matriz de metadatos. Esto hace que WordPress piense que existen para que pueda usarlas 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 imagen, se crea, todas las solicitudes posteriores solo recibirán la imagen recién creada.

Estos complementos necesitan reescribirse antes de ponerlos en el directorio de complementos de WordPress, pero deberían ser seguros. O al menos tenga TODOcomentarios donde no sean seguros.


¡Agradable!
MikeSchinkel

2

Publiqué un código en este otro hilo que establece un transitorio con el tipo de publicación al cargar una imagen, y luego comprueba el valor de ese transitorio y ajusta el tamaño de la miniatura de la publicación en consecuencia cuando finaliza la carga. No es perfecto ni a prueba de balas, pero al menos debe demostrar el concepto.


0

Se me ocurrió la siguiente solución. Realmente crea imágenes solo para el tipo de publicación personalizada sin crear ninguna adicional. El único problema es que si usa complementos como campos personalizados avanzados, cuando intenta 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 de publicación 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);
}

}

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.