从第一页开始继续数


Continue counting after page 1

我有这个简单的计数器php代码并在Wordpress中使用它。下面是代码:

$counter = 0;
   while ($query->have_posts())
       {query->the_post();$counter++;

效果很好。但是当我转到第2页时,计数器重置并从1开始。有没有可能在第二页,第三页继续计数?

浏览器地址中的url为:/?sf_paged=2为第2页,/?sf_paged=3为第3页等…

是否有一些if代码我可以做,如:

if $url = /?sf_paged=2 {
    $counter2++; }
else if $url = /?sf_paged=3 {
    $counter3++; }

之类的?

像这样初始化你的计数器

$counter = $_GET['sf_paged'] ? intval($_GET['sf_paged']) * $posts_per_page : 0;

那么$counter++就是你想要的。

如果您想获得查询中所有帖子的数量,使用:

$query->found_posts

如果你想看看从第1页到第n页有多少篇文章(其中'n'是当前页面),我建议使用一个简单的乘法:

$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$postnum = $paged*$query->posts_per_page;

或者您可以尝试将其存储在$_GET参数,cookie或sessionStorage/localStorage中。:)

试试这个应该没问题

<?php
$i = 0; //counter
$post_in_page = 4; //number of posts in loop
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; //pagi
$guide = "post_type=post&posts_per_page=$post_in_page"; //loop option
?>
<?php query_posts($guide.'&paged=' . $paged); while(have_posts()) : the_post(); ?>  
<?php 
$i++; //here counter
if(get_query_var('paged') != 1){ // here if current page not first page
echo get_query_var('paged')*$post_in_page+$i-$post_in_page; // that's it :D 
}else{
echo $i;
}
?>    
<li>
<?php echo get_the_title(); ?>
<br />
</li><!--End Loop-->
<?php endwhile; ?>
<ul class="pagnum">
<li><?php next_posts_link();?></li>
<li><?php previous_posts_link(); ?></li>
</ul><!--End pagnum-->                      
<?php wp_reset_query();?>