文档、docBlocks和Codex
基本上,你有一个非常简单的错误:
$attributes
数组为
the 2nd argument:
function the_post_thumbnail( $size = \'post-thumbnail\', $attr = \'\' ) {
echo get_the_post_thumbnail( null, $size, $attr );
}
它的内部工作方式
wp_get_attachment_image()
.
2)
稍后,在此函数中,下一个相关函数调用是
$image = wp_get_attachment_image_src( $attachment_id, $size, $icon );
在那里,
image_downsize()
调用,这是您可以跳入并短路整个系统的第一个点,只需返回自定义大小的图像:
if ( $out = apply_filters( \'image_downsize\', false, $id, $size ) ) {
return $out;
}
如果没有发生这种情况,您可以进一步查看,下一个函数调用是
// $size: One of the registered image sizes: medium, large, full, custom, etc.
$intermediate = image_get_intermediate_size( $id, $size )
// Or: Use \'thumbnail\' and retrieve the size in a different way:
$thumb_file = wp_get_attachment_thumb_file( $id ) )
getimagesize( $thumb_file )
只要在那里的任何地方,图像URl都可以通过core获得,它就会调用
image_constrain_size_for_editor()
这个函数可以做两件不同的事情:
根据用户设置,通过返回宽度get_option( "{$size}_size_w" )
返回自定义大小(将首先进行检查)list( $max_width, $max_height ) = apply_filters(
\'editor_max_image_size\',
array( $max_width, $max_height ),
$size,
$context
);
这是下一次拦截呼叫的机会。
$context
将是
display
(主题)或
edit
用于管理UI中的调用。
如果所有这些都奏效了,你就会回到wp_get_attachment_image_src()
并立即从image_downsize()
那里
6) 最后
。。。您可以使用
wp_get_attachment_image()
(正确的方式)并拦截
width/height
在许多阶段中,调用底层函数。
救援插件
由于一次又一次地经历这一切是一件痛苦的事,我写了
Dynamic Image Resize Plugin
它在GitHub上免费提供,可以与主题或插件捆绑在一起。它可以通过模板中的过滤器直接调用,也可以与短代码一起使用。