Wordpress 如何获取图形标签内的帖子缩略图

问题描述 投票:0回答:3

我正在运行一个查询循环,并希望“if”帖子有特色图像,它需要位于

<figure>
标签内。但特色图像的
<img>
标签出现在
<figure>
标签之前。可能是什么原因?

        foreach($posts as $post){
            setup_postdata($post);
            

            echo '<article class="pet_post">';
                if(has_post_thumbnail()) { echo '<figure class="post_thumbnail">'. the_post_thumbnail('full') . '</figure>'; };
                echo '<h1 class="post_title">'. get_the_title() . '</h1>';
                echo '<p class="pet_seller">'. get_the_content() . '</p>';
                echo '<form method="POST">';
                    echo '<input type="hidden" name="post-id" value="'. get_the_ID() . '">';
                    echo '<button type="submit" name="delete-post">Delete this post</button>';
                echo '</form>';   
            echo '</article>';
        };

通过这张图可以更好地理解问题: enter image description here

php wordpress wordpress-theming thumbnails custom-wordpress-pages
3个回答
2
投票

这是因为您使用的是

the_post_thumbnail
函数,默认情况下会回显图像,这比回显
figure
标签要早。

更换

echo '<figure class="post_thumbnail">'. the_post_thumbnail('full') . '</figure>';

echo '<figure class="post_thumbnail"><img src="' . get_the_post_thumbnail_url(get_the_ID(), "full") . '"></figure>';

1
投票

我相信这种做法也是可以接受的。

<figure class="post_thumbnail">
    <?php if(has_post_thumbnail()) { echo the_post_thumbnail('full'); }; ?>
</figure>

0
投票

您还可以使用 post_thumbnail_html 过滤器挂钩以编程方式自定义帖子缩略图的

<img>
标签。

function my_theme_filter_post_thumbnail($html) {

    $html = "<figure>{$html}</figure>";
    return $html;
}
add_filter('post_thumbnail_html', 'my_theme_filter_post_thumbnail');

我最近在博客上谈论过它。

© www.soinside.com 2019 - 2024. All rights reserved.