是否可以将 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' );
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' );