在创建自定义帖子类型时,是否有必要使用Flush_Rewrite_Rules?为什么?

时间:2018-06-20 作者:Josh

我看了一些创建自定义帖子类型的教程。一些教程说,激活/停用插件时,必须调用flush\\u rewrite\\u规则。但一些教程根本没有提到这一点。

那么,在创建自定义帖子类型时,是否需要flush\\u rewrite\\u规则?

我读过法典:https://codex.wordpress.org/Function_Reference/flush_rewrite_rules

它只是说这是一个昂贵的调用,但如果不调用flush\\u rewrite\\u规则,会发生什么?我已经备份了我的。htaccess,调用flush\\u rewrite\\u rules(其中hard默认设置为true)后,调用旧的。htaccess和new。htaccess完全相同。

3 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

那么,在创建自定义帖子类型时,是否需要flush\\u rewrite\\u规则?

这不是必要的,但这是个好主意。用户只需转到“设置”,即可自行刷新重写规则 ;Permalinks,但是如果用户不这样做,并且您自己没有刷新规则,那么如果用户尝试查看自定义帖子,他们将收到404错误。

无论哪种方式。htaccess文件未更改。所有的WordPress。htaccess所做的是将所有请求发送到索引。运行WordPress的php。WordPress然后通过将请求的URL与存储在数据库中的自身重写规则进行比较来确定要加载的内容。

要使自定义帖子类型正常工作,需要创建一条规则,告诉WordPress自定义帖子类型的URL是什么样的。由于生成这些规则的成本很高,因此它们只生成一次并存储在数据库中。因此,至少需要在插件激活时生成一次规则,以便包含自定义帖子类型规则。这可以通过编程实现flush_rewrite_rules 激活时或用户访问设置时 ;永久链接。自己动手为插件用户提供了更好的体验。

您还可以在停用时刷新它们,以便不再存在的帖子类型的URL正确返回404,而不是让WordPress尝试从不存在的帖子类型加载帖子。

SO网友:Iceable

有必要刷新WordPress的重写规则,以生成和缓存重写规则,使您的帖子类型中的帖子可以访问。

在调用此函数之前,所有指向新注册的自定义帖子类型的永久链接都将返回404错误。

可以说,最终用户也可以从wp admin手动转到Settings>Permalinks,然后单击“save changes”,这将产生相同的结果。

从用户的角度来看,让插件通过运行flush_rewrite_rules() 激活时更方便!

这确实是一个昂贵的电话,但这并不意味着你根本不应该这么做。这意味着它应该只在必要的时候进行,这是在插件的激活和停用挂钩上进行的,而不是一直进行。

你绝对不想跑flush_rewrite_rules() 从连接到的函数\'init\' 例如

SO网友:Hamed Moodi

对于新的post类型permalinks,只需一次。插件激活和停用时使用效果更好

结束

相关推荐