0

我遇到了Wordpress網站的子頁面上的單頁面應用程序的重定向規則問題。我很直接地遵循了這套說明,並且仍然存在問題:https://wordpress.stackexchange.com/questions/193479/redirect-sub-pages-to-parent-without-changing-url將WordPress網址重定向到父頁面而沒有更改網址

子頁面是業務地點的自定義發佈類型。當有人訪問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/防止我的單頁應用從導航到聯繫人選項卡。

如果有幫助,我還寫了一些功能,將我的網址從business.com/location/hollywood-ca更改爲清潔程序business.com/hollywood-ca。我已經測試了這些沒有這些功能的問題,並且仍然存在問題,所以我不認爲它們是相關的。

回答

1

我在Wordpress Exchange上得到了答案。我需要使用自定義查詢變量查詢index.php而不是page_id

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