WordPress If 语句特色图片

WordPress If statement Feature Image

我想要实现的目标是 post 那些没有设置特色图片以使用默认 CSS 背景图片的人。这意味着每个 post 都会有一个图像。

<?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 ?>')">

对于 post 没有特色图像集 'background-image' 应该是 CSS 中的默认图像,因为代码实际上是为那些 post 编写的背景图像(没有壮举图像集)是:

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; ?>
?>`

在这种情况下,您只需要使用 if 语句来决定是否显示 whole 样式标签。将这些东西添加到你的 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 标签(不仅仅是图片)只会在您有特色图片时出现。