2013-10-04 112 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或输入:) –

相关问题