将后备(默认)图像设置为特色图像块

时间:2021-06-04 作者:Chandra

我试图创建一个基于块的主题,但在尝试设置默认特征图像时遇到了一个问题,以防某些帖子没有这些图像。

基本上,我们以前在php中这样做

<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} else { ?>
<img src="<?php bloginfo(\'template_directory\'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" />
<?php } ?>
但现在有了块,主题是html,我能看到的只有

<!-- wp:post-featured-image {"isLink":true} /-->
我在这里找不到任何其他参数,也找不到if/else块,所以我只能添加一个普通的html。

如果有人这样做了,那将大有裨益。

谢谢

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

我不知道您是否仍在寻找解决方案,但您可以使用post_thumbnail_html 在php文件中过滤以返回回退;就像这样。

/**
 * Set the default image if none exists.
 *
 * @param string $html              The post thumbnail HTML.
 * @param int    $post_id           The post ID.
 * @param int    $post_thumbnail_id The post thumbnail ID.
 * @return html
 */
public function wp_893874_fallback_post_thumbnail_html( $html, $post_id, $post_thumbnail_id ) {
    if ( empty( $html ) ) {
        $html = \'<img src="http://lorempixel.com/g/400/200" width="400" height="200" loading="lazy" alt="\' . get_the_title( $post_id ) . \'" />\';
    }

    return $html;
}
add_filter( \'post_thumbnail_html\', \'wp_893874_fallback_post_thumbnail_html\', 5, 3 );

相关推荐