我有这个简单的计数器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++; }
类似的东西?
答案 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();?>