我想要实现的是针对尚未设置精选图片以使用默认CSS背景图片的帖子。这意味着每个帖子都会有一张图片。
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'thumbnail') ); ?>
<div class="entry-header featureImg" style="background-image: url('<?php echo $url ?>')"></div>
基本上就是这样:
<div class="entry-header featureImg" style="background-image: url('<?php echo $url ?>')">
对于没有精选图片的帖子设置了&#39; background-image&#39;应该是CSS中的默认值,因为代码实际上是为这些帖子编写的bg图像(whitout专业图像集)是:
background-image: url(''); //taken from page source
这应该用php if语句完成,但我不知道如何使用这种语法:
`<?php if($has_post_thumbnail) : ?>
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID,'thumbnail') ); ?>
<div class="entry-header featureImg" style="background-image: url('<?php echo $url ?>')">
<?php else : ?>
<div class="entry-header featureImg">
<?php endif; ?>
?>`
答案 0 :(得分:0)
在这种情况下,您只需要使用if
语句来判断是否显示整个样式标记。将这些类型的东西添加到functions.php
文件中更加清晰,尽管如此,如果你在那里添加它:
function alternative_bg_img() {
global $post;
if (has_post_thumbnail()) {
var $image = wp_get_attachment_url( get_post_thumbnail_id( $post->ID, 'thumbnail ') );
echo 'style="background-image:url(' + $image + ');';
}
}
然后添加:
<div class="entry-header featureImg" <?php alternative_bg_img(); ?>>
然后,只有当您有精选图片时,才会显示整个style
标记(不仅仅是图片)。