¿Cómo ampliar la miniatura de las publicaciones destacadas?

11

La situación es la siguiente: estoy usando el complemento de miniaturas de video para obtener y configurar automáticamente las miniaturas de youtube / vimeo como imagen destacada de la publicación. El problema es que el tamaño predeterminado de las miniaturas de youtube / vimeo es un poco más pequeño que el ancho del contenido principal de mi tema.

Entonces, lo que necesito es escalarlos. Si voy a la Biblioteca de medios, puedo editar cada imagen manualmente, luego establecer mi ancho exacto y WordPress lo aumenta a la perfección (no me importa que la calidad sea un poco peor). Entonces, ¿hay alguna forma en que WP lo haría automáticamente cada vez que se carga una imagen?

Este es mi tamaño de imagen definido: add_image_size('post-full', 688, 320, true); El tamaño del pulgar de Vimeo es 640x320.

    
pregunta evaqas 30.04.2012 - 17:10

2 respuestas

17

Puede usar la función nativa de Wordpress image_resize para ampliar las imágenes. Wordpress proporciona un enlace llamado " image_resize_dimensions " que puede usar para sobrescribir la configuración de recorte predeterminada. Aquí hay una función modificada que admitirá la ampliación:

function image_crop_dimensions($default, $orig_w, $orig_h, $new_w, $new_h, $crop){
    if ( !$crop ) return null; // let the wordpress default function handle this

    $aspect_ratio = $orig_w / $orig_h;
    $size_ratio = max($new_w / $orig_w, $new_h / $orig_h);

    $crop_w = round($new_w / $size_ratio);
    $crop_h = round($new_h / $size_ratio);

    $s_x = floor( ($orig_w - $crop_w) / 2 );
    $s_y = floor( ($orig_h - $crop_h) / 2 );

    return array( 0, 0, (int) $s_x, (int) $s_y, (int) $new_w, (int) $new_h, (int) $crop_w, (int) $crop_h );
}

Ahora enganche esta función así:

add_filter('image_resize_dimensions', 'image_crop_dimensions', 10, 6);

Una vez hecho esto, puedes usar la función image_resize para escalar las imágenes hacia arriba o hacia abajo según sea necesario.

$cropped_image = image_resize($image_filepath, $width, $height, true);
    
respondido por el levi 12.09.2012 - 16:18
0

la forma más fácil sería agregar un tamaño de imagen con 640x298, y usar css para cambiar su tamaño. como es solo una pequeña escala, la escala del navegador debería funcionar bastante bien.

desafortunadamente, todos los complementos que conozco no proporcionan una mejora de la imagen, solo generan los tamaños de imagen más pequeños, por lo que si desea tener el 688x320 en su servidor, tendrá que editar uno de los complementos existentes.

si tiene instalado Imagick, puede modificar su complemento en el archivo video-thumbnails.php en la línea 325, generando una versión más grande de la miniatura, usando este código:

$image_big = new Imagick();
$image_big->setOption('jpeg:size', '688x344');
$image_big->readImage($new_thumbnail);

$upload = wp_upload_bits( basename( $new_thumbnail ), null, $image_big );

y deje que wordpress genere la miniatura más pequeña de ella (cortando la altura). ¡Asegúrese de hacer diferentes tamaños de imagen para las diferentes plataformas de video en su código Imagick!

    
respondido por el fischi 30.04.2012 - 17:35

Lea otras preguntas en las etiquetas