在php While While循环中使用IF

时间:2014-07-19 00:37:30

标签: php wordpress while-loop

我在下面有这个代码,它是在wordpress中获得热门帖子的循环

$First_Img = '<img src="'.YPE_Catch_First_Image().'">';
while ( $popular->have_posts() ) : $popular->the_post();
    $html  = '<article>';
    $html .= '<section class="bootstrap-nav-thumb">';
    $html .= '<p>';
    $html .= '<a href="' . get_permalink() . '">';
    $html .= get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive'));
    $html .= '</a>';
    $html .= '</p>';
    $html .= '</section>';

    $html .= '<aside class="bootstrap-title-info">';
    $html .= '<p>';
    $html .= '<a href="' . get_permalink() . '">'.get_the_title().'</a>';
    $html .= '</p>';
    $html .= '<p class="text-muted">' . get_the_date() . '||'. getPostViews(get_the_ID()) . '</p>';
    $html .= '</aside>';
    $html .= '</article>';
    echo $html;
endwhile;

我想使用此代码

html .= if(has_post_thumbnail()) { 
    echo get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive'));
} else {
    echo $First_Img;
};

而不是此代码

$html .= get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive'));

但是服务器显示错误unexpected 'if' (T-IF)请帮助我如何使用条件语句当我有缩略图打印它并且如果没有缩略图打印第一张图像?

4 个答案:

答案 0 :(得分:1)

请改为尝试:

if(has_post_thumbnail()) { 
    $html .= get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive'));
} else {
    $html .= $First_Img;
};

.=运算符实质上意味着“追加”。您最初使用的代码行“意味着将get_the_post_thumbnail(...)追加到$html”。

这样,您可以使用if语句检查条件,并附加您想要的内容。

答案 1 :(得分:1)

不正确:

$html .= if(has_post_thumbnail()) { 
    echo get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive'));
} else {
    echo $First_Img;
};

正确:

if(has_post_thumbnail()) { 
    $html .=  get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive'));
} else {
    $html .=  $First_Img;
};

答案 2 :(得分:1)

尝试ternary operator

   $html .= has_post_thumbnail() ?  get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive')) : $First_Img;

答案 3 :(得分:0)

你应该这样做:

if(has_post_thumbnail()) { 
  $html .= get_the_post_thumbnail(get_the_ID(), array('class' => 'img-responsive'));
} else {
  $html .= $First_Img;
};