WordPress add_image_size 最大值 height/width

Wordpress add_image_size maximum height/width

我正在使用以下 Wordpress 函数创建新的图像尺寸:

add_image_size('image-custom', 500, 9999);

我有一个相当不寻常的情况,我需要调整图像的大小,使最大边(高度或宽度)为 500 像素。这是可能的还是我需要创建两个图像尺寸并在显示哪个图像时使用逻辑?

与CSS:

我只会注册一种尺寸,比例足够大,以便它适用于横向和纵向,并使用 max-heightmax-width CSS 属性:

.gallery img {
    max-height: 500px;
    max-width: 500px;
}

这样,图片将保持其纵横比并根据较大的尺寸(高度或宽度)进行调整。

与 PHP(未测试):

假设您说的是 WP 画廊:

/* In functions.php */
add_image_size('custom-portrait', 500, 9999, true);
add_image_size('custom-landscape', 9999, 500, true);

/* Inside the loop */
if ( get_post_gallery(get_the_ID(), false) ) {
    foreach( get_post_gallery(get_the_ID(), false)['ids'] as $id ) {
        $meta = wp_get_attachment_metadata( $id );
        echo $meta['height'] > $meta['width'] ? get_the_post_thumbnail('custom-portrait') : get_the_post_thumbnail('custom-landscape');
    }
}

当您在最后一个参数设置为 false 的情况下设置尺寸时,Wordpress 不会裁剪图像,它会在为宽度和高度设置的限制内按比例调整图像大小,这意味着

add_image_size ('image-custom', 500, 500, 假);

将实现您想要的: - 横向图像的宽度为 500,高度低于 500,比例保持不变 - 肖像图像的高度为 500,宽度低于 500