1

我实际上有一个 PHP 循环,我给每个结果一个数字,从 1 开始并按升序跟进。输出如下:

1) C 条
2) B 条
3) A 条

...但我想颠倒列表编号,所以我得到如下信息:

3) 文章 C (文章的顺序不会改变,它们是按日期递减的)
2) 文章 B
1) 文章 A

这是我当前的循环:

<?php
if (have_posts()) :
$counter = 1;
   while (have_posts()) :
      the_post(); ?>

    <div>
        <span class="count"><?php echo $counter; ?></span>
        <?php the_title(); ?>
    </div>

<?php
$counter++;
   endwhile;
endif;
?>

是否有捷径可寻?非常感谢,

4

3 回答 3

4

WP_Query对象有一个保存帖子数量的变量

$query->post_count

所以你的代码可以变成:

<?php
if (have_posts()) :
   global $wp_query;
   $counter = $wp_query->post_count;
   while (have_posts()) :
      the_post(); ?>

    <div>
        <span class="count"><?php echo $counter; ?></span>
        <?php the_title(); ?>
    </div>

<?php
      --$counter;
   endwhile;
endif;
?>
于 2012-11-19T16:46:20.050 回答
1

如果有一个函数返回帖子数,例如count_posts()(只是猜测),请以这种方式使用它:

<?php
if (have_posts()) :
   $counter = wp_count_posts();
   while (have_posts()) :
      the_post(); ?>

    <div>
        <span class="count"><?php echo $counter; ?></span>
        <?php the_title(); ?>
    </div>

<?php
$counter--;
   endwhile;
endif;
?>
于 2012-11-19T16:40:34.083 回答
0

如果这是一个基于 wordpress 的站点/页面,并且该功能的帖子与 wordpress 功能相关:

使用 query_posts 之类的内容可能会更好:http: //codex.wordpress.org/Function_Reference/query_posts

哪个可以让您更好地控制帖子的显示?

编辑:或者,如果你使用这个:

$count_posts = wp_count_posts();

您可以通过反转您的计数器 ($counter--;) 将其与其他答案一起使用

这应该够了吧

http://codex.wordpress.org/Function_Reference/wp_count_posts

于 2012-11-19T16:41:21.880 回答