嗨我使用the_post_thumbnail
作为nivo滑块,我的问题是我似乎无法找到一种简单的方法来自动将图像调整为精确尺寸。
当我使用add_image_size
时,它不会正确拉伸它,它会保持约束。我不想要裁剪或任何东西。我只是希望用户上传图片而不必在此之后做任何事情。
它可能是一个愚蠢的但我用谷歌搜索它,即使有很多关于它,包括各种插件,我似乎无法找到一个坚实的答案。
由于
答案 0 :(得分:0)
我认为你需要澄清你的问题。如果我理解正确,您希望上传的图像是精确的图像而不会裁剪?在调用nivo滑块的_post_thumbnail函数之前,请确保已保存上载。这样你就可以在函数获取原始图像之前进行操作。
答案 1 :(得分:0)
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
< img src =“”width =“760”height =“474”...>
这将为您留下可能比您想要的更高或更宽的图像文件,但会在浏览器中强制设置尺寸,因此适合滑块。它很脏,是的,但它可以使用你现有的工具。
<强>更新强> 响应您的评论:您可以通过获取原始图像信息来自己构建图像标记。
1)抓住post meta,就像这样(假设the_post()已经执行,它应该是你在while循环中):
$meta = get_post_meta($post->ID)
2)检查缩略图ID以避免空输出(并在if块中执行步骤3 + 4)
if(!empty($meta['_tumbnail_id'][0])
3)抓住实际的缩略图原始数据 - 一定要填写你想要的'缩略图'(大小)('缩略图','中等'等等...或者你自己使用add_image_size()的functions.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
希望这有助于:)