0

我在这里问了同样的问题

我正在努力为 wordpress 创建自定义重写规则。

这是我的网址结构

http://domain/cityprofile/?city=Sydney 

其中城市简介是页面模板。

现在我想把这个网址设为

http://domain/Sydney 
4

2 回答 2

1

WordPress 允许主题和插件开发人员以编程方式指定新的自定义重写规则。可以使用以下函数(主要是WP_Rewrite方法的别名)来实现这一点。

WordPress 重写 codex

例子

假设您正在创建一个“营养”页面来显示营养信息。此页面使用自定义模板并采用两个变量,食物和品种。您可以设置重写规则来创建一些自定义的漂亮 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。

于 2013-07-19T04:41:02.387 回答
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
}
于 2013-07-19T05:11:19.173 回答