在不更改URL的情况下将子页面URL重定向到父页面

时间:2016-10-14 作者:Jeff

我对Wordpress网站子页面上的单页应用程序的重定向规则有问题。我非常直接地遵循了这套说明,但仍然存在一些问题:Redirect sub-pages to parent without changing URL

子页面是业务位置的自定义帖子类型。当有人来访时http://business.com/hollywood-ca/contact 它应该停下来http://business.com/hollywood-ca/ 但url需要保持不变(url的联系人部分是每个位置页面上单个页面Vue.js应用程序的一部分,因此需要保持不变)。这是我的代码:

//This function hooks in on post save
function add_location_deep_links( $post_id, $post, $update ) {

    $post_type = get_post_type($post_id);

    if ( "location" != $post_type ) return; // If this isn\'t a \'location\' post, don\'t update it.

    $slug = $post->post_name; //hollywood-ca

    add_rewrite_rule(
        "^{$slug}/[A-Za-z]",  //regex prevents trying to redirect the /hollywood-ca/ page
        "index.php?page_id={$post_id}", //redirect to post
        \'top\' // take precedence over other redirects
    );

    flush_rewrite_rules();
}
问题是我什么时候去http://business.com/hollywood-ca/contact 页面重定向到http://business.com/hollywood-ca/ 这会阻止我的单页应用导航到“联系人”选项卡。

如果有帮助的话,我还编写了几个函数来更改URLbusiness.com/location/hollywood-ca 给清洁工business.com/hollywood-ca. 我在没有这些功能的情况下测试了这些问题,但仍然存在问题,因此我认为它们没有关系。

1 个回复
SO网友:Jeff

米洛的评论让我明白了这一点:

add_rewrite_rule(
    "^{$slug}/",  
    "index.php?location={$slug}", //changed query var to location
    \'top\'
);

相关推荐

在WordPress中,定制器div仍然显示,即使我用javascript隐藏了它

我在我的单曲中加入了一个div。php基于自定义程序中的设置。正如预期的那样,它在前端工作得很好。但在自定义程序中,即使之前未选中该设置,div仍会显示。但问题只是第一次出现。如果选中该复选框并再次取消选中,div将按预期隐藏。现在,在我选中复选框两次后显示另一个屏幕截图:我希望问题现在已经清楚了。以下是相关代码:我正在单曲中显示作者信息。php与<?php if ( isset($GLOBALS[\'wp_customize\']) || get_theme_mod( \'_themename_d