在显示特色图像时,是否需要使用Has_Post_Thumbailure()?

时间:2018-02-01 作者:PBwebD

我很难找到关于the_post_thumbnail() 如果没有特征图像,则返回。

如果我不需要在特色图片周围添加任何额外的html,我应该仍然使用has_post_thumbnail()?

例如,这是否是多余的:

if ( has_post_thumbnail() ) {
    the_post_thumbnail();
}

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

这种详细信息不太可能出现在正式文档中,因此最好直接查看源代码。

此处删除了不相关的部分:

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(). 的docblockget_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; ?>

结束

相关推荐

Get images by category

我目前获取滑块图像的方法是使用以下工作正常的代码:$args = array( \'post_type\' => \'attachment\', \'sort_order\' => \'ASC\', \'sort_column\' => \'menu_order\', ); $attachments = get_posts($args); if ($attachments) { $