当前浏览:首页 / WordPress函数 / has_post_thumbnail()

has_post_thumbnail( int|WP_Post $post = null )

判断文章是否附加了图片

has 判断有more...

postmore...

thumbnail 缩略图


描述

更多类似的主题函数信息,请查看主题开发手册中的条件标签文章。


参数

$post

(int|WP_Post) (可选) Post ID或WP_Post对象。默认值为全局$post

默认值: null


返回

(bool) 文章是否附有图像



源码

查看源码 官方文档


更新日志

版本描述
4.4.0$post可以是post ID或WP_Post对象
2.9.0开始引入

使用示例

  • 示例1

    值得注意的是,has_post_thumbnail() 并不像Codex用户提供的注释所示,只是检查特色图像。如果文章不包含已定义的特色图像,但内容中确实包含图像,则此函数仍将返回TRUE。

  • 示例2

    @Matt Stone,我不同意你的观点。刚刚测试过:

    <?php if (has_post_thumbnail( $post->ID ) ): ?>

    只有当我真的有一个特色图片时,才是true。如果我没有,即使内容中有图像,它也会返回false…

  • 示例3

    本例首先检查是否为当前查询的项目设置了文章缩略图(也称为特色图像)。如果设置了文章缩略图,则返回文章缩略图。如果没有,它会回显一个默认图像,该图像应位于当前主题的图像文件夹中(假设该文件夹位于主题的根目录中)。

    <?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()将新的图像尺寸添加到默认值。

  • 示例4
    <?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部分。它将节省添加长数组的时间。它还应该有助于克服核心网络生命周期指标。

  • 示例5
    if ( has_post_thumbnail() ) {     
        echo '<div style='background-image: url(' . get_the_post_thumbnail_url() . ');></div>';
    }
    ?>
    

    这个if语句检查文章中是否有缩略图。否则,将不显示任何内容。

    用例:一个手工编码的文章循环,其中一些有特色图片,一些没有,你不希望那个div的背景是空的。