Используйте таксономию регистра() в крючке активации регистра()


Я хотел бы использовать register_taxonomy() для определения иерархии географических терминов. Кажется, что естественным местом для его размещения была бы функция, вызываемая register_activation_hook(), поскольку таксономия должна быть определена только один раз. Однако в прекрасном руководстве явно указано "использовать действие инициализации для вызова этой функции".

Почему? Хранятся ли данные не в базе данных, а скорее в памяти? Если да, то могут ли такие таксономии стать свиньями памяти? Я не могу предвидеть, где конечный пользователь может использовать таксономии для определения чего-либо более точного, чем init.

Author: dotancohen, 2016-01-01

1 answers

Хранятся ли данные не в базе данных, а в памяти?

Таксономии (например, типы записей) не хранятся в базе данных и должны регистрироваться при каждой загрузке страницы. Сборка в таксономиях category и post_tag фактически регистрируется дважды, второй раз на крючке init.

Крючок init является самым ранним для регистрации таксономий и типов записей, потому что именно в этом крючке становится доступной локализация. Это стало общепринятым способом регистрации типы сообщений и таксономии.

Если да, то могут ли такие таксономии стать свиньями памяти?

Нет. Если вы собираетесь зарегистрировать тонны таксономий (или типов записей), это может стать проблемой, но это будет указывать на недостаток в вашем дизайне.

Термины, с другой стороны, необходимо зарегистрировать один раз, так как они хранятся в бд. Здесь register_activation_hook() полезно зарегистрировать условия активации плагина. Здесь приведен пример того, как зарегистрировать условия в плагине активация

 4
Author: Pieter Goosen, 2017-04-13 12:37:50