【问题标题】:Wordpress add_rewrite_rule redirects if page is startpage如果页面是起始页,Wordpress add_rewrite_rule 重定向
【发布时间】:2016-06-23 15:26:45
【问题描述】:

我使用以下代码进行自定义 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 参数。

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

【问题讨论】:

    标签: wordpress redirect url-rewriting rewrite


    【解决方案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' );
    

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多