Fügen Sie Begriffe für die benutzerdefinierte Taxonomie bei der Plugin-Aktivierung oder für das Laden jeder Seite ein (init-Hook)

Betrachten Sie ein Plugin, das eine benutzerdefinierte Taxonomie hinzufügt und dann die Taxonomie mit einer großen Termhierarchie füllt (Dutzende von hierarchischen Termen, die bei bestimmten Installationen zu Hunderten werden können). Ich verstehe, dass register_taxonomy() keine Daten in der database speichert, daher muss sie über den init Hook verwendet werden, damit die Taxonomie bei jedem Laden der Seite registriert wird. wp_insert_term() speichert jedoch Daten in der database .

wp_insert_term() es in diesem Fall besser, wp_insert_term() von register_activation_hook() wp_insert_term() nachdem sichergestellt wurde, dass register_taxonomy() ausgeführt wurde? Und dann nur register_taxonomy() auf dem ‘init’ Hook für jede Seite laden?

Als Referenz ist mein spezifischer Anwendungsfall das GeoAreas WP-Plugin, das derzeit ungefähr fünfzig Begriffe hat. Ich entwickle die nächste Version des Plugins, die verschiedene geografische Gebiete unterstützt und einige hundert Begriffe für große geografische Gebiete wie Europa oder die USA unterstützen soll.

Solutions Collecting From Web of "Fügen Sie Begriffe für die benutzerdefinierte Taxonomie bei der Plugin-Aktivierung oder für das Laden jeder Seite ein (init-Hook)"

50 ist relativ nicht viel, und Sie sollten sie auf dem Plugin-Aktivierungs-Hook erstellen.

Für mehr als 100 (habe gerade die Nummer aus meinem Arsch gezogen;) teste deine eigenen Tests auf langsamem shared hosting) Ich würde eine Einstellungsseite erstellen und die DB von dort initialisieren. Der Grund dafür ist, dass Benutzer nicht erwarten, dass die Aktivierung des Plug-ins lange dauert, und dass sie denken, dass etwas nicht in Ordnung ist, aber es gibt keine Möglichkeit, eine Meldung “Das könnte eine Minute dauern” zu aktivieren.

Was auch immer Sie tun möchten, tun Sie es nicht auf dem init Hook, wie es von Front-End verwendet wird, tun Sie es nur auf Hooks, die mit Admin verbunden sind.