在第1页后继续计数

时间:2016-08-24 11:21:01

标签: javascript php wordpress

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

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

哪个工作正常。但是当我转到第2页时,计数器会重置并重新开始1。有没有办法继续计算第2页,第3页等等?

浏览器地址中的网址是:第2页为/?sf_paged=2,第3页为/?sf_paged=3等等。

我可以做一些if代码,例如:

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

类似的东西?

3 个答案:

答案 0 :(得分:0)

像这样启动你的计数器

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

然后$counter++就是你想要的。

答案 1 :(得分:0)

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

$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中。 :)

答案 2 :(得分:0)

试试这个应该可以正常工作

<?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();?>