描述
更多类似的主题函数信息,请查看主题开发手册中的条件标签文章。
参数
- $post
-
(int|WP_Post) (可选) Post ID或WP_Post对象。默认值为全局
$post
。默认值: null
返回
(bool) 文章是否附有图像
源码
更新日志
版本 | 描述 |
---|---|
4.4.0 | $post 可以是post ID或WP_Post对象 |
2.9.0 | 开始引入 |
使用示例
值得注意的是,has_post_thumbnail() 并不像Codex用户提供的注释所示,只是检查特色图像。如果文章不包含已定义的特色图像,但内容中确实包含图像,则此函数仍将返回TRUE。
@Matt Stone,我不同意你的观点。刚刚测试过:
<?php if (has_post_thumbnail( $post->ID ) ): ?>
只有当我真的有一个特色图片时,才是true。如果我没有,即使内容中有图像,它也会返回false…
本例首先检查是否为当前查询的项目设置了文章缩略图(也称为特色图像)。如果设置了文章缩略图,则返回文章缩略图。如果没有,它会回显一个默认图像,该图像应位于当前主题的图像文件夹中(假设该文件夹位于主题的根目录中)。
<?php // Must be inside a loop. if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { echo '<img src="' . get_bloginfo( 'stylesheet_directory' ) . '/images/thumbnail-default.jpg" />'; } ?>
您可以使用
set_post_thumbnail_size()
设置缩略图的默认尺寸。或者,您可以使用add_image_size()
将新的图像尺寸添加到默认值。<?php if ( has_post_thumbnail() ) { $attachment_image = wp_get_attachment_url( get_post_thumbnail_id() ); echo '<link rel="preload" as="image" href="' . esc_attr( $attachment_image ) . '">'; } ?>
这将检查是否有活动缩略图并预加载图像。将代码放在header.php的head部分。它将节省添加长数组的时间。它还应该有助于克服核心网络生命周期指标。
if ( has_post_thumbnail() ) { echo '<div style='background-image: url(' . get_the_post_thumbnail_url() . ');></div>'; } ?>
这个if语句检查文章中是否有缩略图。否则,将不显示任何内容。
用例:一个手工编码的文章循环,其中一些有特色图片,一些没有,你不希望那个div的背景是空的。