是否可以将 Wordpress 参数“/page/2”更改为其他参数?

Is it possible to change the Wordpress parameter "/page/2" to something else?

Disclaimer: I'm working on a legacy corporate WP site (PHP 5.3.3), and I can't make very many major breaking changes.

我正在向现有资源页面 (/resources) 添加分页。总的来说,我是 Wordpress 的新手,但我确实让我的页面正常工作并在页面加载时显示正确数量的资源。

我的问题是:当您在 Wordpress 中分页时使用:

<?php next_posts_link( 'More Resources' , $the_query->max_num_pages ); ?>

它会在页面上创建一个 link,当您单击它时,WP 会自动添加页面参数,如下所示:/resources/page/2/。我遇到的问题是我在单击它的那一刻得到了 404。我对此进行了大量阅读,发生这种情况的主要原因通常是当您使用 wp_query 进行自定义查询时,自定义查询中的帖子数量与主页查询中的帖子数量不同.我认为这是最初的问题,所以我移动了将 posts_per_page 参数设置为 pre_post_load 挂钩的逻辑,并且运行良好:

function exp_wp_modify_main_query ( $query ) {

    if ( $query->is_page( 'resources' ) && $query->is_main_query() ) { // Run only on resources page
        $query->query_vars['posts_per_page'] = 8;
    }

}

add_action( 'pre_get_posts', 'exp_wp_modify_main_query' );

我确实有足够多的博客文章需要分页(每页的文章数量比我的文章数量多)。我认为这个问题与此页面的设置没有类别有关。资源页面没有类别。所以 url 看起来像这样: resources/some_category/page/2/,就是resources/page/2。 WP 是否可能认为 "pages" 是类别,这就是它抛出 404 的原因?

如果是,有没有办法把/pages/2/改成/p/2/,如果是的,这是个好主意吗?

我想通了。要更改分页基础:

我在我的插件中实现了这个功能:

function set_pagination_base () {

    global $wp_rewrite;

    $wp_rewrite->pagination_base = 'p';

}

然后:

add_action( 'init', 'set_pagination_base' );