0

我想要实现的是没有设置特色图片的帖子使用默认的 CSS background-image 。这意味着每个帖子都会有一个图像。

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

对于没有特色图像集的帖子,“背景图像”应该是 CSS 中的默认图像,因为实际上是编写了这些帖子的 bg 图像(没有壮举图像集):

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

1 回答 1

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然后,只有当您有特色图片时,才会出现整个标签(不仅仅是图片)。

于 2015-02-22T20:23:51.910 回答