首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress和flush_rules

Wordpress和flush_rules
EN

Stack Overflow用户
提问于 2016-07-29 14:35:36
回答 1查看 237关注 0票数 0

我有一个有几个定制重写规则的站点,如下所示:

代码语言:javascript
复制
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,因为我不会激活或关闭插件?

一如既往,谢谢你们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 11:56:11

我注释掉了$wp_rewrite->刷新_rules(False);部分地,我不得不留下以下内容:

代码语言:javascript
复制
add_action('init', array($this, 'add_my_rewrite'), 10, 0);

其职能是:

代码语言:javascript
复制
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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38661483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档