看上去那么容易。但是,我仍然无法编写URL重写规则。实际规则应该更复杂,但即使以下非常基本的测试规则也不起作用:
add_action('init', 'my_url_rewrite'));
function my_url_rewrite()
{
global $wp_rewrite;
$wp_rewrite->flush_rules();
add_rewrite_rule('test', 'index.php?page_id=96', 'top');
}我本以为这样做的话.当请求URL http://127.0.0.1/wordpress/test时,它实际上应该打开页面http://127.0.0.1/wordpress/index.php?page_id=96。
相反,我得到一个错误页面,告诉我的请求重新来源没有找到。我试了很多次,但不起作用。看来我犯了一个很基本的错误。
基于"page_id“的网址是正确的,它可以直接调用它。另外,我会在以后将刷新行移到插件激活和失活钩子中,这只是为了测试。
发布于 2014-03-25 14:28:16
好吧,我想我找到了。当将flush_rules()调用放在add_rewrite_rule()之后时,它可以工作。
该死的。实际上,我首先尝试了这一点,因为它在API文档中是这样描述的。也许我同时改变了两件事,得出了错误的结论。抱歉的。
因此,在插件激活时,我会这样做:
add_rewrite_rule('test', 'index.php?page_id=96', 'top');
flush_rewrite_rules();在停用的情况下:
flush_rewrite_rules();我想这样可以吗?
最让我恼火的是,规则();和规则();在WP代码中有不同的描述,但是当查看WP源时,它们是完全相同的。这很让人困惑。描述和例子甚至是不同的,它们没有相互参照。为什么会这样呢?
https://stackoverflow.com/questions/22634964
复制相似问题