J'aimerais utiliser register_taxonomy()
pour définir une hiérarchie de termes géographiques. Il semble que le lieu naturel pour le placer serait dans une fonction appelée par register_activation_hook()
pour voir comment la taxonomie n'a besoin d'être définie qu'une seule fois. Cependant, le manuel détaillé indique explicitement "d'utiliser l'action init pour appeler cette fonction".
Pourquoi? Les données ne sont-elles pas stockées dans la base de données mais en mémoire? Si tel est le cas, de telles taxonomies pourraient-elles devenir des porcs de mémoire? Je ne peux pas anticiper où l'utilisateur final pourrait utiliser les taxonomies pour cibler quelque chose de plus précis que init.
Les données ne sont-elles pas stockées dans la base de données mais en mémoire?
Les taxonomies (comme les types de publication) ne sont pas stockées dans la base de données et doivent être enregistrées à chaque chargement de page. Les taxonomies intégrées, category
et post_tag
sont en fait enregistrées deux fois, la deuxième fois sur le hook init
.
Le hook init
est le plus tôt pour enregistrer les taxonomies et les types de publication, car c'est le hook pour lequel la localisation devient disponible. C'est devenu le crochet accepté pour enregistrer les types de courrier et les taxonomies.
Si tel est le cas, de telles taxonomies pourraient-elles devenir des porcs de mémoire?
Non. Si vous allez enregistrer des tonnes de taxonomies (ou de types de publication), cela peut devenir un problème, mais cela signifierait un défaut dans votre conception.
Les termes en revanche doivent être enregistrés une fois car ils sont stockés dans la base de données. Ici, la register_activation_hook()
est utile pour enregistrer les termes lors de l'activation du plugin. Ici est un exemple sur la façon d'enregistrer des termes lors de l'activation d'un plugin.