我有这个简单的计数器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();?>