add_image_size() 方法有一个您希望使用的裁剪方法的标志。但是,它们都将保持图像的比例不变。
您可以扩展功能或构建您自己的插件来以您想要的方式处理大小调整 - 您可能想看看 /wp-includes/media.php 和一个简单的调整大小类,如 https://github.com/mdular/ReSample.php/blob/master/ReSample.php
不过,我不喜欢扭曲图像比例。如果客户无法区分纵向或横向纵横比,那么在大多数情况下,裁剪图像而不是拉伸它似乎是更优雅的解决方案。
对于您的问题的快速而肮脏的解决方案,尽管我建议如下:
-
添加图像大小并通过宽度或高度对其进行限制以适合您的滑块宽度或高度(此示例仅通过宽度进行限制):
add_image_size('slider-image', 760, 9999); //760 像素宽,“无限”高度
-
输出图片标签时,强制图片标签中的尺寸为760 x 474
这将为您留下可能比您想要的更高或更宽的图像文件,但将被强制为浏览器中设置的尺寸,因此适合滑块。它很脏,是的,但它可以与你目前拥有的工具一起使用。
更新
回应您的评论:您可以通过获取原始图像信息自己构建图像标签。
1) 抓取 post 元数据,像这样(假设 the_post() 已经执行,如果你在 while 循环中应该是这样):
$meta = get_post_meta($post->ID)
2) 检查缩略图 id 以避免空输出(并在 if 块内执行步骤 3 + 4)
if(!empty($meta['_tumbnail_id'][0])
3) 获取实际的缩略图原始数据 - 请务必填写您想要的“缩略图版本”(大小)(“缩略图”、“中”等。如果您在您的函数.php)
$image = wp_get_attachment_image_src( $meta['_thumbnail_id'][0], 'VERSION');
4) 构造图片标签:
$image[0] = the src url
$image[1] = the width - you may use this
$image[2] = the height - you may wish to force this to your liking
希望这会有所帮助:)