我在这里问了同样的问题
我正在努力为 wordpress 创建自定义重写规则。
这是我的网址结构
http://domain/cityprofile/?city=Sydney
其中城市简介是页面模板。
现在我想把这个网址设为
http://domain/Sydney
我在这里问了同样的问题
我正在努力为 wordpress 创建自定义重写规则。
这是我的网址结构
http://domain/cityprofile/?city=Sydney
其中城市简介是页面模板。
现在我想把这个网址设为
http://domain/Sydney
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[]
用于检索匹配 URL 的值时,捕获组数据从 1 开始,而不是 0。
试试这个,未经测试,可以进行一些测试和更改。
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
}