WordPress对自定义帖子类型中的帖子进行计数

时间:2016-07-28 作者:user3326594

如何在此代码中对帖子进行WordPress计数。

<?php query_posts(\'showposts=6\'); ?>
<?php $posts = get_posts(\'numberposts=6&offset=0\'); foreach ($posts as $post) : start_wp(); ?>
<?php static $count1 = 0; if ($count1 == "6") { break; } else { ?>
<div class="col-md-4 com-xs-12 pannel">
  <div class="pannel-news">
    <?php the_post_thumbnail(); ?>
    <div class="sidebar-color">
      <strong><a href="<?php the_permalink(); ?>"><?php the_title( \'<h4>\', \'</h4>\' ); ?></a></strong><!-- Post Title -->
    </div>
  </div>
</div>
<?php $count1++; } ?>
<?php endforeach; ?>

1 个回复
SO网友:Krzysztof Grabania

看起来这段代码很旧。作用wp_start() 自WordPress 1.5以来已弃用(Documentation). 但您想知道it代码是如何计算的,所以:

  • $posts = get_posts(\'numberposts=6&offset=0\'); - 获得6篇帖子foreach ($posts as $post) : - 重复每篇文章static $count1 = 0; - 初始化$count1 变量$count1++; - 将计数器增加一个
更重要的是,此代码不会计数,因为计数器变量的init位于循环内。在每次迭代中,此变量的值将设置为0。只有在结束时,值才会为1。此外,计数器是不必要的,因为您要查询6篇文章,然后在代码中,当计数器等于6时,您就得到了中断。您的代码应如下所示:

<?php $query = new WP_Query( array(
    \'numberposts\' => 6,
    \'offset\' => 0
) ); ?>

<?php if ( $query->have_posts() ): ?>
    <?php while ( $query->have_posts() ): ?>
        <?php $query->the_post(); ?>
        <div class="col-md-4 com-xs-12 pannel">
            <div class="pannel-news">
                <?php the_post_thumbnail(); ?>
                <div class="sidebar-color">
                    <strong>
                        <a href="<?php the_permalink(); ?>">
                            <?php the_title( \'<h4>\', \'</h4>\' ); ?>
                        </a>
                    </strong>
                </div>
            </div>
        </div>
    <?php endwhile; ?>
<?php endif; ?>

相关推荐

GET_POSTS查询大约需要40秒来执行

我在get\\u帖子中有一个元查询,它需要花很长时间才能完成。它工作得很好,但只是时间太长了。我有一个名为event. 在每个event 发布后,有自定义元数据:post\\U sort\\U日期(事件日期YmdHis 格式,用于排序)我需要做的是获取下一个事件,该事件相对于$year 和$month 变量。所以如果$year = 2021 和$month = 10 (2021 10月)然后应该在2021 11月或之后找到第一个事件。我下面的查询很好,但很慢。执行大约需要40秒,我不知道为什么。$next