Используйте таксономию регистра() в крючке активации регистра()
Я хотел бы использовать register_taxonomy()
для определения иерархии географических терминов. Кажется, что естественным местом для его размещения была бы функция, вызываемая register_activation_hook()
, поскольку таксономия должна быть определена только один раз. Однако в прекрасном руководстве явно указано "использовать действие инициализации для вызова этой функции".
Почему? Хранятся ли данные не в базе данных, а скорее в памяти? Если да, то могут ли такие таксономии стать свиньями памяти? Я не могу предвидеть, где конечный пользователь может использовать таксономии для определения чего-либо более точного, чем init.
1 answers
Хранятся ли данные не в базе данных, а в памяти?
Таксономии (например, типы записей) не хранятся в базе данных и должны регистрироваться при каждой загрузке страницы. Сборка в таксономиях category
и post_tag
фактически регистрируется дважды, второй раз на крючке init
.
Крючок init
является самым ранним для регистрации таксономий и типов записей, потому что именно в этом крючке становится доступной локализация. Это стало общепринятым способом регистрации типы сообщений и таксономии.
Если да, то могут ли такие таксономии стать свиньями памяти?
Нет. Если вы собираетесь зарегистрировать тонны таксономий (или типов записей), это может стать проблемой, но это будет указывать на недостаток в вашем дизайне.
Термины, с другой стороны, необходимо зарегистрировать один раз, так как они хранятся в бд. Здесь register_activation_hook()
полезно зарегистрировать условия активации плагина. Здесь приведен пример того, как зарегистрировать условия в плагине активация