有了一个额外的端点,因为您想在每个帖子/页面重写规则的末尾添加一些内容,所以您可能只需添加一个重写端点即可。这些是以下形式的正则表达式/[endpoint_name](/[optional_extra_stuff])?
附加到已生成的页面、帖子、归档等规则中。。。
通过设置端点掩码,可以定义要在哪些结构上添加它们。这是一个位掩码,因此可以使用|
操作员,如下所示:EP_PERMALINK | EP_PAGES
将匹配每个页面和每个永久链接(完整的帖子和基于日期的存档)。可以找到端点的默认列表at the top of wp-includes/rewrite.php
.
以下代码将添加/gallery(/(.*))?
对于页面、帖子和基于日期的归档文件的现有重写规则(由于某些原因,它们会生成两次,一次在EP_PERMALINK
一旦进入EP_DATE
):
add_filter( \'init\', \'wpse4498_init\' );
function wpse4498_init()
{
add_rewrite_endpoint( \'gallery\', EP_PERMALINK | EP_PAGES );
}
使用显式新重写规则,您还可以显式执行,这可能会让您对生成的规则有更多的控制。
重写规则本身非常简单:采用一般的post规则(.+?)/([^/]+)
(category/pagename
) 并添加您的库结构。NextGEN总是添加其查询变量,而不仅仅是在启用永久链接时,所以我们可以只使用gallery
风险值:
\'(.+?)/([^/]+)/gallery/([0-9]{1,})/?$\' =>
\'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]\'
额外重写规则的位置很棘手。因为你的permalink结构是
/%category%/%postname%/
您有详细的重写规则,无法放置泛型
(.+?)/([^/]+)
顶部:您的页面将停止工作。您不能将其放在底部,因为附件规则非常通用,并且在到达您的规则之前已经匹配了URL。我认为最好的添加位置是
post_rewrite_rules
滤器这将提供以下内容:
add_filter( \'post_rewrite_rules\', \'wpse4498_post_rewrite_rules\' );
function wpse4498_post_rewrite_rules( $post_rewrite_rules )
{
$post_rewrite_rules = array(
\'(.+?)/([^/]+)/gallery/([0-9]{1,})/?$\' =>
\'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]\',
) + $post_rewrite_rules;
return $post_rewrite_rules;
}
这只包括帖子,如果您还想支持带有图库的页面,那么它将变得更加复杂,因为您必须为每个详细的页面组添加它们。