在REGISTER_ACTIVATION_HOOK()中使用REGISTER_TAYNOMY()

时间:2016-01-01 作者:dotancohen

我想使用register_taxonomy() 定义地理术语的层次结构。似乎放置它的自然位置将位于register_activation_hook() 了解如何只需定义一次分类法。然而,精细手册explicitly states “使用init操作调用此函数”。

为什么?数据是否不是存储在数据库中,而是存储在内存中?如果是这样的话,这样的分类法会不会成为内存消耗者?我无法预测最终用户会在哪里使用分类法来定位比init更精确的东西。

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

数据是否不是存储在数据库中,而是存储在内存中?

分类法(如帖子类型)不存储在数据库中,需要在每次页面加载时注册。内置分类法,categorypost_tag 实际上注册了两次,第二次是在init

这个init 钩子是最早注册分类法和post类型的,因为这是本地化可用的钩子。这已经成为注册帖子类型和分类法的公认挂钩。

如果是这样的话,这样的分类法会不会成为内存消耗者?

不需要。如果您要注册成吨的分类法(或post类型),这可能会成为一个问题,但这样做会表明您的设计存在缺陷。

另一方面,术语存储在db中时需要注册一次。这里是register_activation_hook() 用于在插件激活时注册术语。Here 是一个关于如何在插件激活时注册术语的示例

相关推荐