WordPress中分页类别页面的计数器代码

时间:2013-01-10 作者:Skotlive

我正在尝试自定义类别模板,以便在每个页面上显示10篇文章的有序列表。我在循环中使用以下代码:

<?php $counter = 1; 
while(have_posts()) : the_post(); ?> 
    <div class="entry">
        <?php echo $counter++; the_excerpt(\'\'); ?>
    </div> 
<?php endwhile; ?>
在第一页:它显示按1到10的顺序排列的摘录列表,但在第二页(使用wp pagenavi),它再次从1开始。是否有任何方法可以将一个类别的所有帖子显示在从帖子1到最后一篇帖子的一致有序列表中。

1 个回复
SO网友:s_ha_dum

是的,当然是从1开始。您已经在每次页面加载时将计数器初始化为1。

如果要编写自定义循环,请执行以下操作:

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
如果正常的WordPress分页机制在你的页面上工作,那么这也应该对你有用。这将为您的页面编号。您的计数器应从$paged 乘以每页的帖子数,减去每页的帖子数。所以每页有十篇帖子。。。

第1页->$paged = 1 -> 1*10=10->10减10=0->从零开始第2页->$paged = 2 -> 2*10=20->20减10=10->从10开始,当然人类从1开始计数,但如果在打印之前增加计数器,问题就解决了。

<?php 
$mypage = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$ppp = get_query_var(\'posts_per_page\');
$counter = ($mypage * $ppp) - $ppp; 
while(have_posts()) : the_post(); 
    $counter++; // that pushes the zero based counter up one ?> 
    <div class="entry">
        <?php echo $counter; the_excerpt(\'\'); ?>
    </div> 
<?php endwhile; ?>
未经测试。也许是马车。但我很肯定这是在正确的轨道上。

结束

相关推荐

为了减少CPU负载,我应该使用GET_POST还是wp_QUERY?

我有一个博客,主页上有3块帖子。所以,我用“get\\u post”获得这些帖子,我在页面上有3个类似的代码:global $post; $args = array( ... ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> ....... <?php endforeach; ?> 我的CPU负载很高,我想