我正在使用Wordpress 4.3 和WPML 插件。我在主题上使用了类别过滤器,网站首页只显示“中的帖子”English“类别。类别id为62.
代码如下:
<?php
$count_posts = wp_count_posts();
$page = isset($wp_query->query[\'paged\']) ? (int)$wp_query->query[\'paged\'] : 1;
$count_post = 9;
$args = array(
\'posts_per_page\' => $count_post,
\'offset\' => ($page-1) * $count_post,
\'category\' => \'62\',
\'orderby\' => \'date\',
\'order\' => \'DESC\',
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'suppress_filters\' => true
);
$posts_array = get_posts( $args );
?>
最初,主题不包含分页,因此我通过将代码与另一个主题进行比较来实现类似的内容:
<div class="row text-center">
<hr>
<nav>
<ul class="pagination m30-0">
<?php
if($page > 1) {
$i = $page - 1;
$url = "href=\'../../page/$i/\'";
?>
<li>
<a <?=($page==$i?\'\':$url)?> aria-label="Previous">
<span aria-hidden="true">←</span>
</a>
</li>
<?php
}
for($i = 1;$i <= $maxpages;$i++){
$url = "href=\'".($page >= 1 ? "../../": "")."page/$i/\'";
?>
<li class=\'<?=($page==$i?\'active\':\'\')?>\'><a <?=($page==$i?\'\':$url)?>><?=$i?></a></li>
<?php
}
?>
<?php
if( $page + 1 <= $maxpages ) {
$i = $page + 1;
$url = "href=\'".($page >= 1 ? "../../" : "")."page/$i/\'";
?>
<li>
<a <?=($page==$i?\'\':$url)?> aria-label="Next">
<span aria-hidden="true">→</span>
</a>
</li>
<?php
}
?>
</ul>
</nav>
</div>
正如预期的那样,结果分页显示的页面比英语类别中显示的页面多。我有大约4页,但分页显示了另外4页是空的。我认为分页也在计算其他语言的帖子。
实现类别过滤器分页的正确方法是什么?谢谢