如果页面是起始页,Wordpress add_rewrite_rule 重定向
Wordpress add_rewrite_rule redirects if page is startpage
我使用以下代码进行自定义 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
] angular 脚本中的参数。
有人知道如何防止这种重定向吗?
自己在这个帖子中找到了解决方案:
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' );
我使用以下代码进行自定义 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
] angular 脚本中的参数。
有人知道如何防止这种重定向吗?
自己在这个帖子中找到了解决方案: 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' );