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&ssl=1" class="wp-image-115865 shadow" srcset="[...]image.jpg?w=1920&ssl=1 1920w, [...]image.jpg?resize=300%2C169&ssl=1 300w, [...]image.jpg?resize=1024%2C576&ssl=1 1024w, [...]image.jpg?resize=1536%2C864&ssl=1 1536w, [...]image.jpg?resize=640%2C360&ssl=1 640w, [...]image.jpg?resize=1320%2C743&ssl=1 1320w, [...]image.jpg?resize=150%2C84&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 的图像的“尺寸”属性是如何计算的?的主要内容,如果未能解决你的问题,请参考以下文章
php [自定义图像尺寸]添加自定义尺寸图像(上传媒体时的新尺寸)#wordpress #php