Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果页面为起始页面,则Wordpress添加\重写\规则重定向_Wordpress_Redirect_Url Rewriting_Rewrite - Fatal编程技术网

如果页面为起始页面,则Wordpress添加\重写\规则重定向

如果页面为起始页面,则Wordpress添加\重写\规则重定向,wordpress,redirect,url-rewriting,rewrite,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'); 这很好: 当我打开/myp

我使用以下代码进行自定义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/
时,将显示页面id==2的页面,并获取参数
标签
包含
tag1、tag2、tag3
。 路径保持为
/mypath/tag1、tag2、tag3/

但有一个例外: 当页面id=2的页面被标记为wordpress起始页面时,他会忘记所有内容并重定向到
/

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


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

在这个线程中自己找到了解决方案:

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

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' );