wordpress中的自定义URL

时间:2013-07-19 04:32:57

标签: php wordpress .htaccess url-rewriting

我问了同样的问题here

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

这是我的网址结构

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

其中城市个人资料是页面模板。

现在我想将此网址设为

http://domain/Sydney 

2 个答案:

答案 0 :(得分:1)

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

WordPress rewrite 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[]检索匹配网址的值时,捕获组数据从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
}