如果页面是startpage,则Wordpress add_rewrite_rule重定向

时间:2016-03-09 10:06:24

标签: wordpress redirect url-rewriting rewrite

我使用以下代码进行自定义wordpress重写:

function add_rewrite_rules() {
    add_rewrite_rule(
        '^mypath/([A-z0-9\-\_\,]+)/?$', 
        'index.php?page_id=2&tags=$matches[0]', 
        'top'
    );
}
add_action('init', 'add_rewrite_rules');

这很好用: 当我打开/mypath/tag1,tag2,tag3/时,会显示包含page_id == 2的页面,而GET参数tags包含tag1,tag2,tag3。 路径保持/mypath/tag1,tag2,tag3/

但有一个例外: 当带有page_id==2的网页被标记为wordpress首页时,他会忘记所有内容并重定向到/

如果页面是首页,Wordpress似乎会重定向到WP_HOME,但我希望它保持在/mypath/tag1,tag2,tag3/,因为我想加载我的首页并在角度脚本中使用tags参数

有人知道如何阻止这种重定向吗?

1 个答案:

答案 0 :(得分:1)

我自己在这个帖子中找到了解决方案: https://wordpress.stackexchange.com/questions/184163/how-to-prevent-the-default-home-rewrite-to-a-static-page

只需禁用首页的规范重定向:

function disable_canonical_redirect_for_front_page( $redirect ) {
    if ( is_page() && $front_page = get_option( 'page_on_front' ) ) {
        if ( is_page( $front_page ) )
            $redirect = false;
    }

    return $redirect;
}
add_filter( 'redirect_canonical', 'disable_canonical_redirect_for_front_page' );