我有一个有几个定制重写规则的站点,如下所示:
add_action('init', array($this, 'add_my_rewrite') );
public function add_my_rewrite() {
add_rewrite_tag('%get-continent%','([^&]+)');
global $wp_rewrite;
$wp_rewrite->add_rule('something/([^/]*)/?','index.php?page_id=12345&get-continent=$matches[1]','top');
$wp_rewrite->flush_rules(false);
}我从旧的法典中抄袭了它,然后在这里搜索。它们都工作得很好,但是它们在DB上做了很多更新。
在做了一些研究之后,我发现法典也不鼓励在init上使用它(与提供的示例不同)。它有点宽,我该在哪个钩子上开枪。经过一些研究后,似乎最好的时间是插件的激活。
问:我不能关闭那些插件在prod网站,我可以取代"init“的其他东西。插件的激活(还不确定什么是钩子),但如果我评论它的话,roules会起作用吗?除了插件激活之外,我还必须在其他时间启动它吗?它不是会被意外地改写吗?我可以简单地注释掉add_action,因为我不会激活或关闭插件?
一如既往,谢谢你们。
发布于 2016-08-31 11:56:11
我注释掉了$wp_rewrite->刷新_rules(False);部分地,我不得不留下以下内容:
add_action('init', array($this, 'add_my_rewrite'), 10, 0);其职能是:
public function add_my_rewrite() {
add_rewrite_tag('%get-continent%','([^&]+)');
global $wp_rewrite;
$wp_rewrite->add_rule('something/([^/]*)/?','index.php?page_id=12345&get-continent=$matches[1]','top');
}它工作得很好,理想情况下,我必须在激活时触发同花顺,或者最终进入Settings / Permalinks,然后点击Save。
https://stackoverflow.com/questions/38661483
复制相似问题