【问题标题】:WordPress If statement Feature ImageWordPress If 语句特征图
【发布时间】:2015-04-24 02:43:43
【问题描述】:

我想要实现的是没有设置特色图片的帖子使用默认的 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 中的默认图片,因为代码实际上是编写的,这些帖子的背景图片(没有特色图片集)是:

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

【问题讨论】:

  • 您是否考虑过为此使用插件? wordpress.org/plugins/default-featured-image
  • @MichaelDoye 我不想要插件,我正在构建一个新主题 - 我确信使用 if 语句可以很容易地做到这一点,但我不能很好地处理这个......

标签: wordpress image if-statement statements featured


【解决方案1】:

在这种情况下,您只需要使用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标签(不仅仅是图片)只有在你有特色图片时才会出现。

【讨论】:

  • echo 'style="background-image:url(' . wp_get_attachment_url( get_post_thumbnail_id( $post->ID, 'thumbnail ') ) . "');"; 这不是 Javascript 所以使用句点来连接。加号将转换为数字。
  • @bobdye 如果我用 RichieAHB 的代码替换你的代码,那么特色图片会在页面上造成很多混乱......不知道为什么。
  • @Hann 立即尝试 - 没有正确检查我的报价。
猜你喜欢
  • 2017-09-06
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 2014-02-22
  • 1970-01-01
  • 2013-10-23
相关资源
最近更新 更多