我问了同样的问题here
我正在努力为wordpress创建自定义重写规则..
这是我的网址结构
http://domain/cityprofile/?city=Sydney
其中城市个人资料是页面模板。
现在我想将此网址设为
http://domain/Sydney
答案 0 :(得分:1)
WordPress允许主题和插件开发人员以编程方式指定新的自定义重写规则。以下函数(主要是WP_Rewrite
方法的别名)可用于实现此目的。
实施例
假设您正在创建一个用于显示营养信息的“营养”页面。此页面使用自定义模板,并采用两个变量,食物和品种。您可以设置重写规则来创建一些自定义的漂亮URL,而不是将丑陋的查询字符串变量传递给页面。见下文......
add_rewrite_rule('^nutrition/([^/]*)/([^/]*)/?','index.php?page_id=12&food=$matches[1]&variety=$matches[2]','top');
此示例将匹配请求的URL,如下所示:
example.com/nutrition/milkshakes/strawberry/
......并将其解释为实际意味着......
example.com/index.php?page_id=12&food=milkshake&variety=strawberry
注意:使用$matches[]
检索匹配网址的值时,捕获组数据从1开始,而不是0。
答案 1 :(得分:1)
试试这个,未经过测试,可以进行一些测试和更改。
add_action('init', 'add_my_rewrite');
function add_my_rewrite() {
global $wp_rewrite;
$wp_rewrite->add_rule('/([^/]+)/','index.php?pagename=cityprofile?city=$matches[1]','top');
$wp_rewrite->flush_rules(false); // This should really be done in a plugin activation
}