计算循环中的对象(显示数字)

时间:2014-06-03 10:54:33

标签: php wordpress loops count

我想要显示wordpress循环,但我只想显示循环中由自定义字段值过滤的项目数。我不想显示标题或内容,只显示计数。这就是我所拥有的:

<?php query_posts('meta_key=city&meta_value=Seelbach');  ?>
<?php $count = 0; ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
    <?php $count++; //increment the variable by 1 each time the loop executes ?>

            <div>
                <?php if ($count==1) {
                    echo "1";
                }
                elseif ($count==2) {
                    echo "2";
                }
                elseif ($count==3) {
                    echo "3";
                }
                elseif ($count==4) {
                    echo "4";
                } ?>
            </div>
<?php endwhile; endif; ?>

但是输出是“1 2” - 他显示每个项目并给它一个数字,但我只想显示适合我的meta_value的ALL(在这种情况下是2 ...)项目的数量。这意味着我只想展示“2”。

3 个答案:

答案 0 :(得分:1)

如果你想要总数,你可以像这样得到它

<?php query_posts('meta_key=city&meta_value=Seelbach');  ?>
            <?php $count = 0; ?>
            <?php if (have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>
            <?php $count++; //increment the variable by 1 each time the loop executes ?>
            <?php endwhile; endif; ?>
           <?php echo "Count".$count; ?>

答案 1 :(得分:0)

您不需要循环来获取总数,只需在count返回的posts数组上使用get_posts

echo count(get_posts(array('meta_key' => 'city', 'meta_value' => 'Seelbach')));

根据评论进行编辑:

$count = count(get_posts(array('meta_key' => 'city', 'meta_value' => 'Seelbach')));

if($count){
    //your link code here
}

答案 2 :(得分:0)

如果你想获得循环中的帖子总数,可以这样做(结果总是2):

<?php $posts = query_posts('meta_key=city&meta_value=Seelbach');  ?>

    <?php if (have_posts()) : ?>

        <?php while (have_posts()) : the_post(); ?>
        <?php
            <div>
                <?php echo count($posts); ?>
            </div>
<?php endwhile; endif; ?>

如果您只需要将帖子计数一次,请将div放在循环外

<?php $posts = query_posts('meta_key=city&meta_value=Seelbach');  ?>

        <?php if (have_posts()) : ?>

           <?php while (have_posts()) : the_post(); ?>
               <?php
               // do something with post data
               ?>
           <?php endwhile; ?> 
           <div>
               <?php echo count($posts); ?>
           </div>
 <?php endif; ?>