In quale ordine vengono caricati i plugin in WordPress?
E all'interno della cartella di un particolare plug-in, quale ordine viene seguito per il caricamento?
In quale ordine vengono caricati i plugin in WordPress?
E all'interno della cartella di un particolare plug-in, quale ordine viene seguito per il caricamento?
Risposte:
In wp-settings.php
, WordPress controlla innanzitutto eventuali plug-in da utilizzare (plug-in nella mu-plugins
cartella opzionale ) e li carica.
Quindi, se stai eseguendo un'installazione multisito, verifica la presenza di plug-in attivati dalla rete e li carica.
Quindi controlla tutti gli altri plugin attivi osservando la active_plugins
voce della wp_options
tabella del database e scorre quelli. I plugin saranno elencati in ordine alfabetico.
Ecco l'ordine in cui WordPress carica praticamente tutto: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
Il fatto è che di solito non importa in quale ordine venga caricato ogni singolo plugin, perché i plugin scritti correttamente useranno hook di WordPress, che ti permetteranno di collegare funzionalità in punti specifici in seguito all'avvio di WordPress. (Anche i plugin scritti correttamente aggiungeranno il prefisso alle loro funzioni e classi in modo che non ci siano conflitti.)
Ulteriori informazioni sull'API del plug-in: http://codex.wordpress.org/Plugin_API/
Dipende totalmente dal plugin. WordPress carica solo un file nel plugin, quello che di solito prende il nome the-plugin-name.php
e contiene il titolo, la descrizione, l'autore, ecc. In alto. E 'fino al plugin per caricare il resto dei suoi file, utilizzando require_once
ed wp_enqueue_script
e quant'altro.
apply_filters()
per creare un hook, ma viene eseguito prima di un plug-in che utilizza add_filter()
, funzionerà comunque? Logicamente, sembra che apply_filters()
sia già stato attivato, quindi le add_filter()
chiamate nel secondo plugin non faranno nulla. È importante in quale ordine caricano i plugin quando usano solo hook creati da plugin?
apply_filters()
. add_filter()
deve correre prima apply_filters()
. Se si add_filter()
trova in un file plug-in e non in un'altra funzione, verrà eseguito plugins_loaded
all'hook che generalmente accadrà prima che tu ne abbia bisogno apply_filters()
.
the_content
: come viene determinato l'ordine del loro aspetto?
Trovo che sia utile includere un'azione di "caricamento in ritardo" nel mio plugin che viene eseguita dopo che tutti i plugin hanno completato il loro caricamento in questo modo:
add_action('plugins_loaded', 'my_late_loader');
La funzione my_late_loader viene quindi avviata dopo tutti gli altri plug-in che mi consente di utilizzare hook definiti da altri plug-in nella mia funzione my_other_function che viene avviata in 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);
}
Bit contorto (lo so), ma questo assicura che gli hook in altri plugin vengano creati prima di essere aggiunti indipendentemente dall'ordine di caricamento del plugin.