【问题标题】:WordPress custom pagination isn't working wellWordPress 自定义分页效果不佳
【发布时间】:2016-10-27 12:46:01
【问题描述】:

我正在做一个WordPress项目,在这个项目中根据需求,我实现了分页的自定义分页。当我们点击到第 2、3 页等时效果很好,但是当我在第一页之外的另一页上并且想要移动到第一页并单击 1 链接时它不起作用。我不明白问题是什么。

我的自定义分页代码:

function custom_pagination($numpages = '', $pagerange = '', $paged='') {
        if (empty($pagerange)) {
            $pagerange = 2;
        }
        global $paged;
        if (empty($paged)) {
            $paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
        }
        if ($numpages == '') {
            global $wp_query;
            $numpages = $wp_query->max_num_pages;
            if(!$numpages) {
              $numpages = 1;
            }
        }
        $pagination_args = array(
            'base'            => '%_%',
            'format'          => '?paged=%#%',
            'total'           => $numpages,
            'current'         => $paged,
            'show_all'        => true,
            'end_size'        => 1,
            'mid_size'        => $pagerange,
            'prev_next'       => True,
            'prev_text'       => esc_html__('Prev','textdomain'),
            'next_text'       => esc_html__('Next','textdomain'),
            'type'            => 'list',
            'add_args'        => false,
            'add_fragment'    => ''
        );
        $paginate_links = paginate_links($pagination_args);
        if ($paginate_links) {
            echo "<nav class='pagination-nav'>".$paginate_links."</nav>";
        }
    }

【问题讨论】:

    标签: php jquery wordpress pagination


    【解决方案1】:

    检查您的函数 custom_pagination() 是否应用 front_page,也许您的主题在帖子列表页面的第一页有特殊的模板部分。

    有很多方法,开始在你的主题目录中搜索主循环所在的文件部分并查找:

    if( (is_home() || is_front_page()) ){ ... }

    也许你有一个部分:

    如果 (!is_paged()){ .... }

    包括首页的特殊部分模板。

    编辑:对不起,我读错了你的问题和我糟糕的英语,你能否更具体一点,第一页检查员上显示的错误链接是什么,预期的链接是什么?

    【讨论】:

    • 我在自定义模板上使用了这个功能。当我检查 1 链接时,它的 url 是空的,但是在检查 2,3 等链接时,我得到了正确的 url。
    • 简而言之,分页适用于所有链接,而不是 1 页链接。意味着当我移动到其他页面而不是 1 页并想要返回 1 页时,分页不起作用。
    【解决方案2】:

    终于找到了解决这个问题的办法。代码的基础需要更改:

    'base' => @add_query_arg('paged','%#%'),
    

    【讨论】:

      猜你喜欢
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 2011-08-13
      • 2016-04-18
      • 2016-11-05
      • 2017-04-16
      • 1970-01-01
      相关资源
      最近更新 更多