2013-10-04 145 views

回答

0

當你訪問一個頁面,比如說domain.com/careers,WordPress必須找出從數據庫中檢索哪個文章。

它會查看它的所有重寫規則並嘗試找到與請求匹配的規則。在這種情況下,最後一個規則將抓住它:

[(.?.+?)(/[0-9]+)?/?$] => index.php?pagename=$matches[1]&page=$matches[2] 

它將careers$matches[1])通過爲pagename值,因此對它進行解剖,然後看看在數據庫中一個名爲careers崗位。

當您訪問名爲domain.com/careers/internships的頁面時,最後一條規則將再次應用。這一次,它將通過careers/internships,對其進行相應的剖析,將帖子的父級設置爲careers,然後在數據庫中查找與父級匹配的名爲internships的帖子。

如果WordPress允許您將slug設置爲myslug1/myslug2,那麼WordPress所做的一些假設是錯誤的。

  1. 沒有名爲myslug1
  2. 父頁面不存在頁面調用myslug2
  3. 沒有重寫規則,讓WordPress的知道如何處理myslug1/myslug2

所有這一切說,它可能仍然有可能完成你想要的東西,但也許不會用來製造slu gs的方式。必須有一種模式,一種規則,你可以給WordPress說「如果x,然後y」。

例如,您可以使用一個帶有輸入字段的元框,只要您在其中輸入了某個內容,該子彈就會出現在URL的末尾。或者,也許你可以在domain.commyslug2之間夾一個自定義slu sandwich。

這裏有一些事情要考慮:

  1. add_rewrite_rule功能 - 允許您指定其他重寫規則
  2. add_rewrite_tag功能 - 讓WordPress的知道自定義查詢字符串變量的
  3. query_vars過濾器 - 允許查詢變量在執行查詢之前被操縱
  4. template_redirect action - 在WordPress確定要加載哪個模板頁之前執行

另一種方法可能是用myslug1創建父頁面,然後用myslug2創建子頁面。或者,根據您的需要,您也可以查看custom post types。您可以擁有一個名爲myslug1的自定義帖子類型,然後在其中發帖,其中一個帖子將是myslug2

如果您有關於實現上述其中一項的具體問題,請查看Stack Overflow或者如果找不到答案,請另附問題。

+0

真的有網址myslug1/myslug2所以我可以手動打開它,但我想設置指向myslug1/myslug2的永久鏈接,請參閱? –

+0

什麼創建了該URL,以及如何手動打開它? – NightHawk

+0

ex,在瀏覽器的url欄中鍵入鏈接並按下go或輸入:) –

相關問題