在Wordpress中加载相同纵横比的缩略图

dauxcl2d  于 2023-03-07  发布在  WordPress
关注(0)|答案(1)|浏览(181)

我已经在WordPress中注册了一个特定长宽比的风景图片的大小(2048像素乘684像素);

add_image_size( '2048x684-header', 2048, 684, true); //crop.

我已经设置了ACF图像字段返回一个图像ID,并且我正在使用调用图像;

wp_get_attachment_image( $image, '2048x684-header' );

假设纵横比为:
我的天
我的天
我的天
这个函数只在原始图像≥ 2048像素的情况下生成缩略图,这意味着如果尺寸小于2048,下一个缩略图大小将被使用,这与所需的纵横比不成比例。
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
我正在寻找一种方法来生成一个以上的缩略图,即如果我上传的原始图像小于2024宽,它将生成一个比例较小的尺寸,但相同的高宽比,如1600像素x 534像素的图像。
我试过用相同的高宽比添加不同的尺寸,比如;

add_image_size( '1600x534-header', 1600, 534, true); //crop. Smaller but same aspect ratio.
add_image_size( '1100x367-header', 1100, 367, true); //crop. Smaller but same aspect ratio.

这不能作为一个后备。有没有办法设置一个图像后备,即如果较大的缩略图不可用,然后使用下一个指定的?

j5fpnvbx

j5fpnvbx1#

我找到了解决问题的办法How to show conditional image thumbnail size in Woocommerce
这三种图像尺寸具有相同的宽高比;

add_image_size( '2048x684-header', 2048, 684, true); //crop. 
add_image_size( '1600x534-header', 1600, 534, true); //crop. Smaller proportion to the above.
add_image_size( '1100x367-header', 1100, 367, true); //crop. Smaller proportion to the above.

我能够调整上面的解决方案;

<?php 

    $filemeta = wp_get_attachment_metadata( $image, FALSE );

    if ( $filemeta['width']>2048 && $filemeta['height']>684 ) {
        echo wp_get_attachment_image( $headerImage, '2048x684-header' );
    } elseif ( $filemeta['width']>1600 && $filemeta['height']>534 ) {
        echo wp_get_attachment_image( $headerImage, '1600x534-header' );
    } elseif ( $filemeta['width']>1100 && $filemeta['height']>367 ) {
        echo wp_get_attachment_image( $headerImage, '1100x367-header' );
    } else ( $filemeta['width']>1100 && $filemeta['height']>367 ) {
        echo wp_get_attachment_image( $headerImage );
    }
    
    ?>

相关问题