W jakiej kolejności wtyczki są ładowane do WordPress?
A w jakim folderze wtyczki jest określona kolejność ładowania?
W jakiej kolejności wtyczki są ładowane do WordPress?
A w jakim folderze wtyczki jest określona kolejność ładowania?
Odpowiedzi:
W wp-settings.phpWordPress najpierw sprawdza wszelkie niezbędne wtyczki (wtyczki w opcjonalnym mu-pluginsfolderze) i ładuje je.
Następnie, jeśli prowadzisz instalację wielostanowiskową, sprawdza ona wtyczki aktywowane przez sieć i ładuje je.
Następnie sprawdza wszystkie pozostałe aktywne wtyczki, patrząc na active_pluginspozycję wp_optionstabeli bazy danych, i przegląda je. Wtyczki zostaną wyświetlone alfabetycznie.
Oto kolejność, w jakiej WordPress ładuje prawie wszystko: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
Chodzi o to, że zazwyczaj nie ma znaczenia, w jakiej kolejności ładowana jest każda wtyczka, ponieważ poprawnie napisane wtyczki będą korzystały z haków WordPress, które pozwalają podłączyć funkcjonalność do określonych punktów później podczas uruchamiania WordPress. (Prawidłowo napisane wtyczki będą również poprzedzać ich funkcje i klasy, aby nie było żadnych konfliktów).
Więcej informacji na temat API wtyczek: http://codex.wordpress.org/Plugin_API/
Całkowicie zależy od wtyczki. WordPress ładuje tylko jeden plik do wtyczki, ten, który jest zwykle nazywany the-plugin-name.phpi zawiera tytuł, opis, autora itp. U góry. To do wtyczki, aby załadować resztę swoich plików za pomocą require_oncei wp_enqueue_scripti etażerka.
apply_filters()do utworzenia haka, ale działa przed wtyczką, która używa add_filter(), to czy nadal będzie działać? Logicznie wydaje się, że apply_filters()już wystartował, więc add_filter()wywołania w drugiej wtyczce nic nie zrobią. Czy ma znaczenie kolejność ładowania wtyczek przy użyciu tylko haków utworzonych przez wtyczki?
apply_filters(). add_filter()musi biec wcześniej apply_filters(). Jeśli add_filter()znajduje się w pliku wtyczki, a nie w innej funkcji, uruchomi się on na plugins_loadedzawieszeniu, co na ogół nastąpi zanim będzie to potrzebne apply_filters().
the_content- jak ustala się kolejność ich wyglądu?
Uważam, że użyteczne jest włączenie w mojej wtyczce działania polegającego na „późnym ładowaniu”, które jest uruchamiane po zakończeniu ładowania wszystkich wtyczek w następujący sposób:
add_action('plugins_loaded', 'my_late_loader');
Funkcja my_late_loader jest następnie inicjowana po wszystkich innych wtyczkach, co pozwala mi korzystać z haków zdefiniowanych przez inne wtyczki w mojej własnej funkcji my_other_function, która jest inicjowana w my_late_loader
/**
* 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);
}
Trochę zawiłe (wiem), ale zapewnia to, że zaczepy w innych wtyczkach są tworzone przed dodaniem, niezależnie od kolejności ładowania wtyczek.