是否可以更改Wordpress参数" / page / 2"别的什么?

时间:2017-07-07 20:57:07

标签: php wordpress pagination php-5.3

  

免责声明:我正在使用传统的公司WP网站(PHP 5.3.3),而且我无法做出很多重大改变。

我正在为现有资源页面(/ resources)添加分页。我一般都对Wordpress很新,但我的页面工作正常并在页面加载时显示正确数量的资源。

我的问题是:当您使用以下命令在Wordpress中进行分页时

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

它在页面上创建一个链接,当你点击它时,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' );

我确实有足够的博客文章要求分页(帖子数量多于我每页的帖子数量)。我认为这个问题与这个页面没有类别的情况有关。资源页面没有类别。所以不是看起来像这样的网址: resources / some_category / page / 2 / ,它只是资源/ page / 2。 WP是否有可能认为&#34;页面&#34;是什么类别,这就是为什么它会抛出404?

如果是,有没有办法将 / pages / 2 / 更改为 / p / 2 / ,如果是,那就是一个好主意?

1 个答案:

答案 0 :(得分:1)

我想出来了。要改变分页基础:

我在我的插件中创建了这个功能:

function set_pagination_base () {

    global $wp_rewrite;

    $wp_rewrite->pagination_base = 'p';

}

然后:

add_action( 'init', 'set_pagination_base' );