_POST_THMBIAN()的意外宽度和资源集属性;

时间:2018-07-11 作者:reed

我正在修改一个主题,使用一个子主题,在一个模板文件(single.php)中,我需要显示一个大的帖子缩略图,所以我有以下代码:

the_post_thumbnail(\'large\');
在设置>媒体中,大尺寸设置为最大宽度=1024px,最大高度=1024px(我想这是Wordpress中的默认设置)。现在的问题是,在帖子页面中,我得到了以下html代码:

<img src="https://example.com/wp-content/uploads/2018/07/example-image-4-1024x682.jpg"
class="attachment-large size-large wp-post-image" alt=""
srcset="https://www.example.com/wp-content/uploads/2018/07/example-image-4-1024x682.jpg 1024w,
https://www.example.com/wp-content/uploads/2018/07/example-image-4-300x200.jpg 300w,
https://www.example.com/wp-content/uploads/2018/07/example-image-4-768x512.jpg 768w,
https://www.example.com/wp-content/uploads/2018/07/example-image-4-272x182.jpg 272w,
https://www.example.com/wp-content/uploads/2018/07/example-image-4.jpg 1280w"
sizes="(max-width: 800px) 100vw, 800px" width="800" height="533">
结果是我得到了一幅800px宽的图片,而不是一幅真正的“大”图片,它应该是1024px宽。问题似乎出在将最大宽度设置为800px的“size”属性和将图像设置为800px的“width”属性中。这些对我来说似乎是错的。那么到底发生了什么?如果它是由主题中的某些内容引起的,我如何找出它在哪里,以便我可以更改它?

查看与\\u post\\u缩略图()相关的文档,我看到了以下过滤器:

post\\u thumbnail\\u size
post\\u thumbnail\\u html
wp\\u get\\u attachment\\u image\\u attributes

因此,我尝试在主题中查找字符串“post\\u缩略图”和“attachment\\u image”,但没有找到任何有用的内容。那么我还需要什么呢?请注意,我安装了一些插件(如高级自定义文件等),但我尝试停用它们,但问题仍然存在,因此我认为问题的根源一定是主题,或者我不了解Wordpress的某些内容。

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

为具有以下功能的图像生成宽度和高度属性时the_post_thumbnail()wp_get_attachment_image() 图像通过image_downsize() 作用此函数所做的最后一件事是通过image_constrain_size_for_editor() 作用

此函数根据给定的大小决定图像的宽度和高度,large 在您的情况下,基于“设置”>“媒体”中的设置。但是,它将设置的最大可能大小为medium, medium_largelarge 无论主题是什么Content Width 定义为。如果主题将内容宽度定义为800 然后使用medium, medium_largelarge 大小将其宽度限制为800(在编辑器中,自定义图像大小仅受此影响)。

如果要删除最大尺寸,可以使用editor_max_image_size 筛选以返回包含所需最大宽度和高度的数组,或0 两人都要取消限制。您可以使用$size$context 要仅应用于的筛选器的参数large 前端或后端的图像(\'display\' 对于前端,\'edit\' 对于管理员)。

此示例将删除的大小限制large 前端图像:

function wpse_308298_max_image_size( $max_image_size, $size, $context ) {
    if ( $size === \'large\' && $context === \'display\' ) {
        $max_image_size = [0,0];
    }

    return $max_image_size;
}
add_filter( \'editor_max_image_size\', \'wpse_308298_max_image_size\' );

结束

相关推荐

Duplicate images in wordpress

我在我的网站上使用wordpress,但“博客”部分(这里称为新闻和事件)有问题。为什么第一张图片会被复制-http://www.fiumanofineart.com/news-events/我试过修复它,但我不能。。。任何帮助都会很好,谢谢