带有回退作为背景图片的 Wordpress 特色图片
Wordpress featured image with fallback as a background image
这是我第一次涉足 Wordpress,我正在尝试创建一个 post 页面。我已插入特色图片,但如果没有特色图片,我会尝试将其换成后备图片。
目前看起来像这样(循环内的 obvs):
<?php $thumb = get_the_post_thumbnail_url(); ?>
<div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
<div class="page-title"><h1><?php the_title(); ?></h1></div>
</div>
这很棒,因为它拉动了 url,然后我在其中放置了 echo $thumb 位。
我想我需要以某种方式将 $thumb 定义为缩略图 url 或另一个 URL 但不确定如何定义?
我已经设法将其作为列表页面的图像标签,但如果可以的话,我更希望能够将其作为背景图像(只需引入 URLs)。
这是列表目前使用的内容 - 但仅适用于 img 标签。
<div class="news-collation-img">
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} else { ?>
<img src="<?php bloginfo('template_directory'); ?>/img/news/fallback-image.jpg" alt="<?php the_title(); ?>" />
<?php } ?>
</div>
设计漂亮的图片比让它工作容易得多:-p
感谢任何人的帮助。
试试这个:
<?php
//define fallback image path
$thumb = bloginfo('template_directory').'/img/news/fallback-image.jpg';
if ( has_post_thumbnail() ) {
//override fallback image if post has any thumbnail
$thumb = get_the_post_thumbnail_url();
}
?>
<div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
<div class="page-title"><h1><?php the_title(); ?></h1></div>
</div>
出于某种原因,上面的代码在页面上将模板目录生成为纯文本。如果我回显 $thumb = bloginfo('template_directory').'/img/news/fallback-image.jpg';
它会显示正确的 URL.
然而,当在背景图像中作为 URL 回调时 <div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
它不起作用。
当我将 $thumb = bloginfo('template_directory')
更改为 $thumb = get_template_directory_uri()
时,一切正常。不知道为什么我会相信他们做同样的事情。 (bloginfo('template_directory') 然后执行 get_template_directory_uri).
但它奏效了,所以我同意...
这是我第一次涉足 Wordpress,我正在尝试创建一个 post 页面。我已插入特色图片,但如果没有特色图片,我会尝试将其换成后备图片。
目前看起来像这样(循环内的 obvs):
<?php $thumb = get_the_post_thumbnail_url(); ?>
<div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
<div class="page-title"><h1><?php the_title(); ?></h1></div>
</div>
这很棒,因为它拉动了 url,然后我在其中放置了 echo $thumb 位。
我想我需要以某种方式将 $thumb 定义为缩略图 url 或另一个 URL 但不确定如何定义?
我已经设法将其作为列表页面的图像标签,但如果可以的话,我更希望能够将其作为背景图像(只需引入 URLs)。
这是列表目前使用的内容 - 但仅适用于 img 标签。
<div class="news-collation-img">
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} else { ?>
<img src="<?php bloginfo('template_directory'); ?>/img/news/fallback-image.jpg" alt="<?php the_title(); ?>" />
<?php } ?>
</div>
设计漂亮的图片比让它工作容易得多:-p
感谢任何人的帮助。
试试这个:
<?php
//define fallback image path
$thumb = bloginfo('template_directory').'/img/news/fallback-image.jpg';
if ( has_post_thumbnail() ) {
//override fallback image if post has any thumbnail
$thumb = get_the_post_thumbnail_url();
}
?>
<div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
<div class="page-title"><h1><?php the_title(); ?></h1></div>
</div>
出于某种原因,上面的代码在页面上将模板目录生成为纯文本。如果我回显 $thumb = bloginfo('template_directory').'/img/news/fallback-image.jpg';
它会显示正确的 URL.
然而,当在背景图像中作为 URL 回调时 <div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
它不起作用。
当我将 $thumb = bloginfo('template_directory')
更改为 $thumb = get_template_directory_uri()
时,一切正常。不知道为什么我会相信他们做同样的事情。 (bloginfo('template_directory') 然后执行 get_template_directory_uri).
但它奏效了,所以我同意...