首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取查询中的位置

获取查询中的位置
EN

Stack Overflow用户
提问于 2014-11-18 14:50:12
回答 1查看 521关注 0票数 0

我有一个带有静态首页的wordpress网站。我在我的首页上显示了10个帖子,并使用以下查询按其票数进行排序:

代码语言:javascript
运行
复制
<?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);
?>

然后,使用以下简单代码在查询中得到当前位置的帖子:

代码语言:javascript
运行
复制
<?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,使其继续从上一页结束时的位置编号?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-18 14:56:04

您可以使用$paged修改$count...Something,如:

代码语言:javascript
运行
复制
$current_index = $my_query->current_post;
$count = ( intval($paged) * 10 - 10 ) + intval( $current_index ); 
echo $count;

所以,例如,如果你在第2页,$paged == 2。因此,计算结果如下(对于页面上的第一篇文章):

代码语言:javascript
运行
复制
$count = ( 2 * 10 - 10 ) + ( 1 );
$count = 10 + 1;
$count = 11;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26997124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档