WordPress用于识别页面的模式是(.+?)
, 它可以匹配任何东西,但不是贪婪的,所以它允许你在最后放一些东西。以下代码适用于WordPress 3.0.1:它将额外的模式放在列表的倒数第二位,因为最终的模式非常通用,它将匹配每个URL:
add_filter( \'page_rewrite_rules\', \'wpse7243_page_rewrite_rules\' );
function wpse7243_page_rewrite_rules( $rewrite_rules )
{
// The most generic page rewrite rule is at end of the array
// We place our rule one before that
end( $rewrite_rules );
$last_pattern = key( $rewrite_rules );
$last_replacement = array_pop( $rewrite_rules );
$rewrite_rules += array(
\'(.+?)/([0-9]+)/([^/]+)/([^/]+)/?$\' => \'index.php?pagename=$matches[1]&id=$matches[2]&fname=$matches[3]&lname=$matches[4]\',
$last_pattern => $last_replacement,
);
return $rewrite_rules;
}
请注意,页面与任何帖子一样,也可以使用
<!--nextpage-->
代码段,其正常URL为
/pagename/2/
, 如果你也有
/pagename/3/jan/fabry/
其中
3
是一个ID。您可以更改模式以在末尾包含可选的页码,因此这可以成为
/pagename/3/jan/fabry/2/
决赛在哪里
2
是页码,第一个
3
是ID。
如果要更改重写规则,我建议my rewrite analyzer plugin (很快在存储库中,but get the current version via Dropbox), 它可以帮助您调试这些东西。