我自己对重写规则不太了解(或不太了解)(但似乎nobody does), 但根据其他一些答案,我得出了这个结论。我们添加了一个新的重写规则designers/designer_name/
. 我们“刷新”重写规则,以便将其保存到数据库中,但请确保只执行一次,因为这是一个昂贵的操作。现在,我们设置了一个与页面匹配的模式,并将多余部分保存在designer_name
查询变量。由于WordPress不知道它必须查看这个变量,因此我们将query_vars
过滤并告诉它也看看这个。
现在,在page-designers.php
主题文件,我们可以get_query_var(\'designer_name\')
它会给你一个设计师的名字。如果你想要额外的东西,比如分页(designer/designer_name/page/2
), 您需要为其添加额外的重写规则(或feed,或任何以designer/designer_name
). 但基本的东西应该有用。
<?php
/*
Plugin Name: WPA 3537
Plugin URI: http://wordpress.stackexchange.com/questions/3537/need-help-with-friendly-urls-in-wordpress
Description: Need help with friendly URL\'s in Wordpress
Version: 1.0
Author: Jan Fabry
*/
register_activation_hook(__FILE__, \'wpa3537_flush_rules\');
function wpa3537_flush_rules()
{
add_rewrite_rule(\'designers/([^/]+)\', \'index.php?pagename=designers&designer_name=$matches[1]\', \'top\');
flush_rewrite_rules(false);
}
add_filter(\'query_vars\', \'wpa3537_query_vars\');
function wpa3537_query_vars($query_vars)
{
$query_vars[] = \'designer_name\';
return $query_vars;
}