Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查Wordpress循环是否有帖子_Wordpress_Loops_Empy - Fatal编程技术网

检查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)
);