Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Wordpress添加图像大小最大高度/宽度_Css_Wordpress - Fatal编程技术网

Css Wordpress添加图像大小最大高度/宽度

Css Wordpress添加图像大小最大高度/宽度,css,wordpress,Css,Wordpress,我正在使用以下Wordpress函数创建新的图像大小: add_image_size('image-custom', 500, 9999); 我有一个相当不寻常的情况,我需要调整图像的大小,使最大的一面(高度或宽度)是500px。这是可能的,还是我需要创建两个图像大小,并在显示哪个图像时使用逻辑?使用CSS: 我将只注册一个足够大的比例大小,以便它同时适用于横向和纵向,并使用max height和max widthCSS属性: .gallery img { max-height: 50

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

add_image_size('image-custom', 500, 9999);
我有一个相当不寻常的情况,我需要调整图像的大小,使最大的一面(高度或宽度)是500px。这是可能的,还是我需要创建两个图像大小,并在显示哪个图像时使用逻辑?

使用CSS: 我将只注册一个足够大的比例大小,以便它同时适用于横向和纵向,并使用
max height
max 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不会裁剪图像,而是在为宽度和高度设置的限制范围内按比例调整图像大小,这意味着

添加图像大小('image custom',500,false)

将完全实现您想要的: -景观图像的宽度为500,高度低于500,比例保持不变
-肖像图像的高度为500,宽度小于500

为了澄清,图像输入可能为450 x 9999,但宽度需要始终为500?@ham三明治类,以较大者为准(宽度或高度)需要为500。如果图像为1000x500,则其大小将调整为500x250。但500x1000将调整为250x500。我希望这是有意义的。好的,我最后一个澄清问题-这是用于视网膜显示吗?@hamsandwich No,它用于照片库。我希望不必使用这种方法,因为它将下载比要求大得多的图像,从而增加页面加载时间。然后唯一的选择是注册两种不同大小的图像,以及访问PHP端的图像尺寸,以查看要响应的图像大小。我刚刚更新了我的答案,为您的问题提供了一种PHP方法。谢谢-正是我想要的!“false”是最后一个参数的默认值,因此您也可以这样写:add_image_size('image-custom',500500);