我有一个带有静态首页的wordpress网站。我在我的首页上显示了10个帖子,并使用以下查询按其票数进行排序:
<?php
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
query_posts(
$args=array(
'post_type' => 'post',
'order' => 'DESC',
'meta_key' => 'cf_votes',
'orderby' => 'meta_value_num',
'posts_per_page' => 10,
'paged' => $paged
)
);
$my_query = null;
$my_query = new WP_Query($args);
?>
然后,使用以下简单代码在查询中得到当前位置的帖子:
<?php $count = $my_query->current_post; echo $count; ?>
这在第一页上是完美的。文章以当前的排名1,2,3-10显示。不过,我也使用分页。这样我就可以浏览下一个查询中的10,20,30条帖子,等等。现在,如果我点击“下一步”,将显示另外10个帖子。但是即使在查询中它们是11,12,13-20,它也表明它们是1,2,3-10。所以它基本上是重新开始的,永远不会超过10。
如何定义$count
,使其继续从上一页结束时的位置编号?
发布于 2014-11-18 14:56:04
您可以使用$paged
修改$count
...Something,如:
$current_index = $my_query->current_post;
$count = ( intval($paged) * 10 - 10 ) + intval( $current_index );
echo $count;
所以,例如,如果你在第2页,$paged == 2
。因此,计算结果如下(对于页面上的第一篇文章):
$count = ( 2 * 10 - 10 ) + ( 1 );
$count = 10 + 1;
$count = 11;
https://stackoverflow.com/questions/26997124
复制相似问题