【发布时间】:2017-01-17 19:03:16
【问题描述】:
我正在回显相关帖子小部件的一些 HTML。我想显示缩略图('get_the_post_thumbnail'),如果它有一个,如果没有,则显示一个后备。我不知道我是否应该在 var 中使用 if/else 语句(不能让它工作)或者最好的方法是什么。
这是我的回显代码:
echo '<div class="l-four"><div class="l-twelve l-mb1 recentThumb t-center">' . get_the_post_thumbnail($recent["ID"], 'thumbnail') .'</div><div class="l-twelve f-size14 f-l-height16 t-center"><a href="' . get_permalink($recent["ID"]) . '" class="c-gold">' . $recent["post_title"] .'</a></div></div>';
我尝试在 var 中使用 if/else:
if ( has_post_thumbnail() ) {
$img = get_the_post_thumbnail( $recent["ID"] );
} else {
$img = '<img src="path/to/image" />';
}
然后回显:
echo '<div class="l-four"><div class="l-twelve l-mb1 recentThumb t-center">' . $img .'</div><div class="l-twelve f-size14 f-l-height16 t-center"><a href="' . get_permalink($recent["ID"]) . '" class="c-gold">' . $recent["post_title"] .'</a></div></div>';
但它只是默认为 else 语句,而不是从有它的文章中提取缩略图。
整个代码块
<?php
if ( has_post_thumbnail() ) {
$img = get_the_post_thumbnail( $recent["ID"] );
} else {
$img = '<img src="path/to/image" />';
}
$args = array( 'numberposts' => '3');
$recent_posts = wp_get_recent_posts( $args );
foreach ( $recent_posts as $recent ) {
echo '<div class="l-four"><div class="l-twelve l-mb1 recentThumb t-center">' . $img .'</div><div class="l-twelve f-size14 f-l-height16 t-center"><a href="' . get_permalink($recent["ID"]) . '" class="c-gold">' . $recent["post_title"] .'</a></div></div>';
}
?>
【问题讨论】:
-
if/else 语句很好。问题似乎在于
has_post_thumbnail()返回 false,但我怀疑我们能否轻松弄清楚它为什么会这样。你到底在哪里使用这段代码? -
如果你评估 get_the_post_thumbnail() 而不是 has_post_thumbnail() 不是更简单吗?
-
在上面添加了整个代码
-
在我看来,您的检查
has_post_thumbnail()和$post全局实际上并没有引用您的查询。尝试将您使用的帖子的 ID 传递给它。查看您正在使用的查询也可能会有所帮助。 -
我该怎么做?上面添加了整个代码。
标签: php wordpress if-statement var