这种详细信息不太可能出现在正式文档中,因此最好直接查看源代码。
此处删除了不相关的部分:
function the_post_thumbnail( $size = \'post-thumbnail\', $attr = \'\' ) {
echo get_the_post_thumbnail( null, $size, $attr );
}
/**
* Retrieve the post thumbnail.
* @return string The post thumbnail image tag.
*/
function get_the_post_thumbnail( $post = null, $size = \'post-thumbnail\', $attr = \'\' ) {
if ( ! $post ) {
return \'\';
}
$post_thumbnail_id = get_post_thumbnail_id( $post );
if ( $post_thumbnail_id ) {
//...
} else {
$html = \'\';
}
/**
* Filters the post thumbnail HTML.
* @param string $html The post thumbnail HTML.
*/
return apply_filters( \'post_thumbnail_html\', $html, $post->ID, $post_thumbnail_id, $size, $attr );
}
你可以看到
the_post_thumbnail()
只要回应
get_the_post_thumbnail()
. 的docblock
get_the_post_thumbnail()
声明它返回与代码匹配的字符串。
因此,如果没有设置特征图像,它应该只返回一个空字符串,然后对其进行回显,这对渲染的标记没有影响。
如果另一个插件过滤post_thumbnail_html
, 当然,即使没有设置缩略图,它也可以返回其他内容。
因此,在您的特定情况下,结束通话has_post_thumbnail()
这只是为了预防意外的副作用,但如果不考虑它,你似乎不会遇到任何问题。
在中,您希望在图像周围添加额外的标记,但这是必要的(props@swisspidy)。e、 g.:
<?php if ( has_post_thumbnail() ) : ?>
<header class="entry-header">
<?php the_post_thumbnail(); ?>
<p>Lorum ipsum blah blah blah</p>
</header>
<?php endif; ?>