2017-07-07 21 views
0

免责声明:我正在一个遗留的企业WP网站(PHP 5.3.3)上工作,我不能做出很多重大突破性更改。是否可以将Wordpress参数“/ page/2”更改为其他内容?

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

我的问题是:当你使用WordPress的分页:

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

它创建页面上的链接,当你点击它,WP自动的添加页面PARAM像这样:/资源/页/ 2/。我遇到的问题是,当我点击它时,我得到了一个404。我已经完成了大量的阅读,发生这种情况的主要原因通常是当您使用wp_query进行自定义查询时,自定义查询中的帖子数量与主页面查询中的帖子数量不同。我认为这是最初的问题,让我感动设置posts_per_page PARAM成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/,它只是资源/页面/ 2。 WP有没有可能认为“网页”是类别,这就是为什么它扔404?

如果是的话,有没有办法来改变/页/ 2//P/2/,如果是到是,即使是一个好主意?

+0

更新,我发现了如何改变分页基地(ADD_ACTION(“初始化','ds_set_pagination_base'))! 但它仍然坏了。 – kauffee000

回答

0

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

function set_pagination_base() { 

    global $wp_rewrite; 

    $wp_rewrite->pagination_base = 'p'; 

} 

然后:

我在我的插件使这个功能

add_action('init', 'set_pagination_base'); 
相关问题