繁体   English   中英

WordPress的基本自定义重写规则

[英]Wordpress Basic Custom Rewrite Rule

对于这个简单的问题,我对此网站上无数次的回答无疑感到很抱歉,但是我无法弄清楚为什么我的重写规则没有生效。

这是我的代码:

add_action('init', 'update_rewrite_rules');
function update_rewrite_rules(){
    add_rewrite_rule('^org/([^/]+)', 'index.php?pagename=about-us&org=$matches[1]', 'top');
    add_rewrite_tag('%org%', '[0-9]+');
}

据我了解,这应该将“ myurl.com/org/13”转换为“ myurl.com/index.php?pagename=about-su&org=13”。 我究竟做错了什么???

我可以将它写到.htaccess文件中,但是,当然,我遇到了Wordpress的自定义PHP重写函数取代我的代码的问题,因此仅找到了变量,但没有找到页面。

无论如何,任何建议或问题的思考将不胜感激! 谢谢。

我相信您必须在实际的重写规则之前注册您的查询变量。 另外,如Wordpress Rewrite API中所述 ,只有刷新新规则并重新生成缓存后,它才能识别新规则。

//Ensure the $wp_rewrite global is loaded
global $wp_rewrite;
//Call flush_rules() as a method of the $wp_rewrite object
$wp_rewrite->flush_rules();

请注意,出于性能原因,您不应仅在插件激活时就执行每个请求。

add_action('admin_init', 'flush_rewrite_rules');

自定义查询中所述,还有另一种添加自定义重写规则的方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM