如果不想调整图像的大小,则需要show 它们的尺寸不同。
正确的方法就是您提到的方法,(img标记中的宽度和高度),如果不起作用,则仅适用于附加到img的一些css(或者可能是col div的所有子级…)因此,您还必须为图像添加css内联样式。
您所说的以错误的比例显示图像本身是不正确的,因为您可以按比例创建图像大小,例如使用固定宽度,然后使用一些css(组合max-height
和overflow:hidden
用于图像的父元素。
这就是说,这似乎是通用PHP+HTML+CSS技术的组合,等等,在这里脱离主题。
我之所以不投票关闭并回答这个问题,唯一的原因是因为通过WordPress功能,您可以获得图像大小并将其用于您的范围。
在我看来,您正在使用链接答案中的第二个函数,它只返回图像的url。
但在这个函数中,有以下几行
$img = wp_get_attachment_image_src($img);
$img = $img[0];
return $img;
请注意,您返回的是
wp_get_attachment_image_src
, 但另外两个值是对您有用的图像的宽度和高度。
因此,将上面的三行替换为这一行:
return wp_get_attachment_image_src($img);
在这个whay中,函数返回整个3项数组。
之后,您的标记变成:
<?php
$imgData = catch_that_image();
$src = $imgData[0];
$width = $imgData[1];
$height = $imgData[2];
$desiredWidth = 207;
$desiredHeight = 130;
// now use a custom function to get the sizes resized proportionally:
$sizes = get_proportional_sizes($width, $height, $desiredWidth, $desiredHeight);
?>
<div class="the-top-thumbnail" style="height:<?php echo $desiredHeight; ?>;overflow:hidden;">
<?php
$format = \'<img src="%1$s" width="%2$d" height="%3$d" style="width:%2$d;height:auto;min-height:%3$d!important;" alt="top-post-image-soothtruth" />\');
printf($format, $src, $sizes[0], $sizes[1]);
?>
</div>
功能
get_proportional_sizes
将是:
function get_proportional_sizes($width, $height, $dWidth, $dHeight) {
$sizes = array();
$ratio = $width / $height;
$sizes[0] = $dWidth;
$sizes[1] = round ( $sizes[0] / $ratio );
return sizes;
}
仅当原始图像的格式比所需格式更水平时,Whis工作流才会显示非比例图像。
要解决此问题,可以使用非常水平的格式,例如207x80,或修改函数和标记以考虑此问题。