Wordpress 的图像的“尺寸”属性是如何计算的?

Posted

技术标签:

【中文标题】Wordpress 的图像的“尺寸”属性是如何计算的?【英文标题】:How is Wordpress' 'sizes' attribute, for images, computed? 【发布时间】:2021-12-09 13:00:43 【问题描述】:

不确定这是否是最近才开始发生的,或者这是否是一个更长时间的问题,但我觉得是前者。否则我想我会注意到的。

当我在帖子中添加图片并将尺寸设置为“放大”或“完整”(大概是我从葡萄牙语翻译过来的)时,我的(自定义)主题会放大或完整显示这些图片宽度。 (为此,我将 add_theme_support('align-wide') 添加到我的 functions.php 中。)

但是,在大屏幕上使用的文件不是正确的。

这是我在包含设置为全宽的图像时得到的图像标签:

<img loading="lazy"   src="[...]image.jpg?resize=640%2C360&amp;ssl=1"  class="wp-image-115865 shadow" srcset="[...]image.jpg?w=1920&amp;ssl=1 1920w, [...]image.jpg?resize=300%2C169&amp;ssl=1 300w, [...]image.jpg?resize=1024%2C576&amp;ssl=1 1024w, [...]image.jpg?resize=1536%2C864&amp;ssl=1 1536w, [...]image.jpg?resize=640%2C360&amp;ssl=1 640w, [...]image.jpg?resize=1320%2C743&amp;ssl=1 1320w, [...]image.jpg?resize=150%2C84&amp;ssl=1 150w" sizes="(max-width: 640px) 100vw, 640px">

您可以看到图像以 1003x564 像素显示,但 'sizes' 属性将最大宽度设置为 640 像素。 因此,此图像以 1003x564 像素显示,是 640 像素宽的放大图像。

结果是像素化的,不漂亮。

什么是定义“尺寸”属性的?为什么这里设置为 640 像素?我可以改变这个吗?怎么样?

【问题讨论】:

【参考方案1】:

在图片中添加attr的函数是wp_get_attachment_image()

在图片中添加size attr的函数是wp_calculate_image_sizes()

他们已经给过滤器wp_calculate_image_sizes 以根据您的需要进行修改。

【讨论】:

谢谢。是的,我知道这一点。但是,这并不能解释为什么最大尺寸设置为 640 像素,而不是更接近相关图像的最大尺寸。无论哪种方式,是的,我想我必须使用它来调整“尺寸”属性。

以上是关于Wordpress 的图像的“尺寸”属性是如何计算的?的主要内容,如果未能解决你的问题,请参考以下文章

在wordpress中使图像响应?

php [自定义图像尺寸]添加自定义尺寸图像(上传媒体时的新尺寸)#wordpress #php

php 根据当前注册的图像尺寸(Wordpress),根据最小高度自动限制最小上传尺寸

PHP 在Wordpress中强制实施最小图像尺寸

在Wordpress中强制最小图像尺寸

如何在 WordPress 中根据视口大小提供不同大小的图像?