检查Wordpress循环是否有帖子
我有一个自定义循环,其中包含从“自定义元字段”复选框添加的帖子。只有选中该复选框,帖子才会被添加到循环中。我有一个容器来保存这个循环。我想做的是检查这个循环是否有帖子,它是否是空的——只需隐藏那个容器。否则,当循环为空时,容器仍保留在页面上:检查Wordpress循环是否有帖子,wordpress,loops,empy,Wordpress,Loops,Empy,我有一个自定义循环,其中包含从“自定义元字段”复选框添加的帖子。只有选中该复选框,帖子才会被添加到循环中。我有一个容器来保存这个循环。我想做的是检查这个循环是否有帖子,它是否是空的——只需隐藏那个容器。否则,当循环为空时,容器仍保留在页面上: <div> <ul> </ul> </div> 这是一个循环: <?php /* Slider ------- */ $slider = new WP_Query('showpost
<div>
<ul>
</ul>
</div>
这是一个循环:
<?php
/* Slider ------- */
$slider = new WP_Query('showposts=-1');
if ( $slider->have_posts() ):
?>
<div>
<ul>
<?php while ( $slider->have_posts() ) : $slider->the_post(); ?>
<?php if ( get_post_meta($post->ID, "mf_homeslider", true) == 'slider_on' ){ // Check if post was added to slider ?>
<li>
<?php if (has_post_thumbnail()) { ?>
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail('large'); ?>
</a>
<?php } ?>
<div>
<?php get_template_part('includes/post_meta'); ?>
<h2>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</h2>
</div>
</li>
<?php } ?>
<?php endwhile; ?>
</ul>
</div>
<?php
endif;
wp_reset_query();
?>
-
提前感谢您的帮助。您应该按自定义字段筛选查询(请参阅详细信息),它还可以提高性能(SQL条件与while if循环)。然后,
have_posts()
返回循环是否包含任何posts
所以不是
$slider = new WP_Query('showposts=-1');
使用
而且不再需要if(get\u post\u meta)(…
(showposts
不推荐使用,请改用posts\u per\u page
)
注意:您正在混合大括号和if-endif样式,后者在嵌套时会更具可读性。是的,成功了。我非常感谢您的帮助。我也学到了一些新东西。谢谢Márton。
$slider = new WP_Query(array(
'meta_key' => 'mf_homeslider',
'meta_value' => 'slider_on',
'posts_per_page' => -1)
);