In welcher Reihenfolge lädt WordPress Plugin-Dateien?

In welcher Reihenfolge werden Plugins in WordPress geladen?

Und in welcher Reihenfolge wird in einem bestimmten Plugin-Ordner geladen?

Solutions Collecting From Web of "In welcher Reihenfolge lädt WordPress Plugin-Dateien?"

Antwort auf die erste Frage:

  1. In wp-settings.php sucht WordPress zunächst nach Plugins, die man unbedingt verwenden muss (Plugins im optionalen Ordner mu-plugins ) und lädt diese.

  2. Wenn Sie eine Multisite-Installation ausführen, sucht es nach Plugins, die vom Netzwerk aktiviert werden, und lädt diese.

  3. Dann sucht es nach allen anderen aktiven Plugins, indem es den Eintrag wp_options databasetabelle wp_options und diese durchläuft. Die Plugins werden alphabetisch aufgelistet.

Hier ist die Reihenfolge, in der WordPress so ziemlich alles lädt: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request

Die Sache ist, es ist normalerweise egal, in welcher Reihenfolge jedes einzelne Plugin geladen wird, denn richtig geschriebene Plugins werden WordPress-Hooks verwenden, mit denen Sie später im WordPress-Startup functionalität in bestimmte Punkte einfügen können. (Richtig geschriebene Plugins werden auch ihren functionen und classn vorangestellt, so dass es keine Konflikte gibt.)

Weitere Informationen zur Plugin-API: http://codex.wordpress.org/Plugin_API/

Antwort auf die zweite Frage:

Kommt auf das Plugin an. WordPress lädt nur eine Datei in das Plugin, die normalerweise den Namen ” the-plugin-name.php und oben den Titel, die Beschreibung, den Autor usw. enthält. Es liegt am Plugin, den Rest seiner Dateien mit require_once und wp_enqueue_script und whatnot zu laden.

Ich finde, dass es sinnvoll ist, eine ‘Late Loading’-Aktion in mein Plugin einzufügen, die ausgeführt wird, nachdem alle Plugins ihren Ladevorgang abgeschlossen haben:

 add_action('plugins_loaded', 'my_late_loader'); 

Die function my_late_loader wird dann nach allen anderen Plugins gestartet, was es mir erlaubt, Hooks, die von anderen Plugins definiert wurden, in meiner eigenen function my_other_function zu verwenden, die in my_late_loader initiiert wird

 /** * Late loading function for actions that must run after all plugins * have loaded */ function my_late_loader(){ add_action( 'some_hook', 'my_other_function', 10, 1); } 

Bitkonvolut (ich weiß), aber dies stellt sicher, dass Hooks in anderen Plugins erstellt werden, bevor sie hinzugefügt werden, unabhängig von der Ladefolge des Plugins.