如何将类别过滤器应用于分页

时间:2016-07-02 作者:ideal identity

我正在使用Wordpress 4.3WPML 插件。我在主题上使用了类别过滤器,网站首页只显示“中的帖子”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">&larr;</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">&rarr;</span>
                      </a>
                    </li>
                    <?php
                    }
                    ?>
                </ul>
            </nav>

        </div>
正如预期的那样,结果分页显示的页面比英语类别中显示的页面多。我有大约4页,但分页显示了另外4页是空的。我认为分页也在计算其他语言的帖子。

实现类别过滤器分页的正确方法是什么?谢谢

1 个回复
最合适的回答,由SO网友:Vuk Vukovic 整理而成

Try changing \'suppress_filters\' => false;

相关推荐

change pagination url

目前,我的分页页面URL为:http://www.example.com/category_name/page/2但我需要将此URL结构更改为:http://www.example.com/category_name/?page=2等有什么解决方案吗?