wordpress 页面链接使用page或paged被转换成/%page%/解决

18 4月

wordpress 页面链接使用page或paged被转换成/%page%/解决

这几天一直在卡一个bug,做了一个自定义界面,但是翻页的时候,用的是:

http://localhost/wordpress/page/api?page=12

但是在浏览器过了一遍以后,就变成了

http://localhost/wordpress/page/api/12/

对page和paged这两个参数都有进行转义,这就超级烦,因为这样API就没法正常的用了。

首先,最后那个反斜杠是WordPress自动修正链接加上的。

所以我馊了相关重写的代码。

在主题function.php最后加上这段代码


add_action( 'init', 'custom_page_rules' );
function custom_page_rules() {
    global $wp_rewrite;
    $wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%';
}
add_filter('redirect_canonical', 'cancel_redirect_canonical'); //禁用wordpress自动更正URL功能
function cancel_redirect_canonical($redirect_url)
{
    if( is_page()) return false;
    return $redirect_url;
}

首先重写page链接,规则是

$wp_rewrite->page_structure = $wp_rewrite->root . ‘%pagename%’;

然后禁用掉wp自动更新链接功能,因为我这里只需要禁用掉页面的,所以做了个判断。

发表评论

电子邮件地址不会被公开。 必填项已用*标注