我使用以下Wordpress功能创建新的图片尺寸:
add_image_size('image-custom', 500, 9999);
我有一个非常不寻常的情况,我需要调整图像大小,使最大边(高度或宽度)为500px。这是可能的还是我需要创建两个图像尺寸并使用逻辑何时显示哪个图像?
答案 0 :(得分:2)
我只会以足够大的比例注册一个尺寸,以便它适用于横向和纵向,并使用max-height
和max-width
CSS属性:
.gallery img {
max-height: 500px;
max-width: 500px;
}
这样,图像将保持其纵横比,并根据哪个尺寸更大来调整:高度或宽度。
假设它是一个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');
}
}
答案 1 :(得分:2)
当您将最后一个参数设置为false设置尺寸时,Wordpress不会裁剪图像,它会按照为宽度和高度设置的限制按比例调整尺寸,这意味着
add_image_size(' image-custom',500,500,false);
将完全达到你想要的效果: - 景观图像的宽度为500,高度低于500,比例保持不变 - 肖像图像的高度为500,宽度低于500