是否可以将Wordpress参数“/ page/2”更改为其他内容?
问题描述:
免责声明:我正在一个遗留的企业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/,如果是到是,即使是一个好主意?
答
我想通了。要更改分页基地:
function set_pagination_base() {
global $wp_rewrite;
$wp_rewrite->pagination_base = 'p';
}
然后:
我在我的插件使这个功能
add_action('init', 'set_pagination_base');
更新,我发现了如何改变分页基地(ADD_ACTION(“初始化','ds_set_pagination_base'))! 但它仍然坏了。 – kauffee000