固定链接结构中的可选参数

时间:2015-07-15 作者:Malibur

我目前面临着一个问题,即pretty permalink和我的主题模板之间的关系。

我有一个名为“performance”的post类型,并使用相当长的永久链接,在单一性能下为模板启用URL。php如下所示:

www.my-website.com/performance/name-of-performance
在该模板的侧栏中,我列出了5个其他性能。到目前为止,这一切都很好。标准WordPress材料。

在另一页上,我列出了在学校时间里的所有表演。这是通过WP\\u查询过滤meta\\u查询完成的。还可以。

但这就是我陷入困境的地方:当你点击其中一个学校表演时,它会链接到单一表演的模板。这个模板在侧栏中列出了其他5个性能。但这些并没有按上课时间过滤。他们只展示了正常的5场表演。

url中是否可以有一个可选参数,以便在如下情况下:

www.my-website.com/performance/name-of-performance
。。。它在侧边栏中列出了正常的5种性能。但如果是这样的话:

www.my-website.com/performance/schools/name-of-performance 
。。。它列出了按学时筛选的5场演出。

在一个没有permalink的世界里,我只需要这个url

www.my-website.com/page_id=12&schools=1
然后在模板中,我会

if( isset($_GET[\'schools\'] ) && $_GET[\'schools\'] == 1 ) {
  // Show performances filtered by school hours in sidebar
} else {
  // Show 5 performances without filtering them
}
请让我知道这是否可行,如果可行,采取什么方法。

我一直在研究add\\u permastruct()add\\u query\\u vars filter和add\\u rewrite\\u rules(),但这一切都让我困惑,因为大多数示例并没有解决我试图解决的问题。

1 个回复
最合适的回答,由SO网友:webtoure 整理而成

Update

您可以使用add_rewrite_endpoint:

add_rewrite_endpoint( \'schools\', EP_PERMALINK | EP_PAGES );
然后,您可以在侧栏中查看schools 变量:

global $wp_query;

if ( isset( $wp_query->query_vars[\'schools\'] ) ) {
    // ...
}
值得一提的是,您的URL如下所示www.example.com/performance/name-of-performance/schools/ 而不是schools 紧跟在自定义帖子类型名称之后。

结束

相关推荐

Custom fields in Permalinks?

我想知道如何将自定义字段值添加到自定义帖子类型的永久链接中?例如,我有自定义的post文件ex:cpt cities。php,它处理注册自定义帖子类型和所有这些细节。在该文件中,我试图将其永久链接设置为包含一个“cities”自定义字段值。我可以使用add\\u permastruct设置永久链接。但是,我无法获取自定义字段的值,并且get\\u post\\u meta()不起作用。这可能是由于$post->ID不起作用(因为它位于自定义post类型文件中,而不是post循环)。有人知道这样一种在