Count posts for pagination

时间:2018-01-19 作者:Sertilou

我正在为一个网站分页<;上一页(页码)下一页>很简单,已经完成。但是现在我需要添加一个选择器来直接转到页面(例如:转到第7页),要这样做,我需要知道有多少页面,为此我需要计算在查询中找到了多少帖子。

问题是这个网站有太多的帖子(>13.000),查询所有帖子都会减慢页面加载速度,这就像。。。10秒后页面才能加载。显然,这是不可接受的。分页解决了这个问题,因为一次只加载50或100篇文章,但我无法将它们全部计算在内。

我可以在不加载的情况下统计某个查询中的帖子吗?或者我可以通过其他方式获得页数吗?

我不能包含所有的代码,因为它太大了,但基本上,它是一个短代码,我这样做:

$args = array();
$args[\'parameters...\'] = value;
$args[\'posts_per_page\'] = 50;
$args[\'offset\'] = 50 * page;   <-- pagination offset
...
$posts = get_posts( $args );  <-- I want to count this without posts_per_page = 50
我试着做:$count=sizeof($posts);

这是可行的,但需要很长时间,因为另外,我必须运行两次查询:一个是posts\\u per\\u page=-1,另一个是posts\\u per\\u page=50。

1 个回复
SO网友:Dharmishtha Patel

$wp_query->post_count 应该是这样的。要获取数据库中存在的帖子总数,请使用$wp_query->found_posts

结束