@chudomozg

На какое событие делать wp_insert_term?

Добрый день уважаемые сеньоры WP разработчики и вообще те, кто сможет мне ответить.
Я немного запутался в системе хуков WP. Я пишу плагин для WP, у меня есть задача создать несколько типов записей и добавить около 20000 терминов таксономии, логично было бы сделать это при установке плагина через register_activation_hook. Но по документации и примерам типы записей вешаются на хук init.
  1. Значит ли это, что каждый раз при загрузке WP мой плагин будет пытаться создать эти типы записей?
  2. На какое событие вешать wp_insert_term? Если я его повешаю на init, будет ли каждый раз при загрузке WP мой плагин пытаться добавить 20 000 терминов таксономии?


Заранее спасибо...
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
1. Регистрация кастомных типов записей и прочих плюшек происходит на init, т.к. иначе их просто не будет в системе (хотя относящиеся к ним записи могут быть при этом в бд). Так, register_custom_post_type и register_taxonomy просто изменяют глобальные переменные.
2. А вот wp_insert_term нужно вызывать только один раз. Надлежит понимать, что он отличается от всех этих register_taxonomy и прочего тем, что пишет данные не в глобальную переменную для нужд ядра, а в базу, и соответственно повторные вызовы приведут в лучшем случае к дублированию данных. Событие? Тот же init сгодится, только не забудьте поставить какой-нибудь флаг или банальную проверку на существование таксономий \ терминов. Какой-нибудь is_terms_added в wp_options.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы