¿En qué orden se cargan los complementos en WordPress?
Y dentro de la carpeta de un complemento en particular, ¿qué orden se sigue para cargar?
¿En qué orden se cargan los complementos en WordPress?
Y dentro de la carpeta de un complemento en particular, ¿qué orden se sigue para cargar?
Respuestas:
En wp-settings.php
WordPress, primero se comprueba si hay complementos obligatorios (complementos en la mu-plugins
carpeta opcional ) y los carga.
Luego, si está ejecutando una instalación multisitio, busca complementos que estén activados por la red y los carga.
Luego comprueba todos los demás complementos activos al observar la active_plugins
entrada de la wp_options
tabla de la base de datos y los recorre. Los complementos se enumerarán alfabéticamente.
Aquí está el orden en que WordPress carga casi todo: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
La cuestión es que, por lo general, no importa en qué orden se cargue cada complemento individual, porque los complementos escritos correctamente usarán ganchos de WordPress, que le permiten conectar la funcionalidad en puntos específicos más adelante en el inicio de WordPress. (Los complementos escritos correctamente también prefijarán sus funciones y clases para que no haya conflictos).
Más información sobre el complemento API: http://codex.wordpress.org/Plugin_API/
Depende totalmente del complemento. WordPress solo carga un archivo en el complemento, el que generalmente se nombra the-plugin-name.php
y contiene el título, la descripción, el autor, etc.en la parte superior. Depende del complemento cargar el resto de sus archivos, usando require_once
y wp_enqueue_script
y otras cosas.
apply_filters()
para crear un enlace, pero se ejecuta antes de un complemento que lo utiliza add_filter()
, ¿funcionará? Lógicamente, parece que ya apply_filters()
se habrá disparado, por lo que las add_filter()
llamadas en el segundo complemento no harán nada. ¿Importa en qué orden se cargan los complementos cuando se usan solo ganchos creados por complementos?
apply_filters()
corre. add_filter()
debe correr antes apply_filters()
. Si add_filter()
está en un archivo de complemento y no en otra función, se ejecutará en el plugins_loaded
gancho que generalmente sucederá antes de que lo necesite apply_filters()
.
the_content
: ¿cómo se determina el orden de su aparición?
Creo que es útil incluir una acción de 'carga tardía' en mi complemento que se ejecuta después de que todos los complementos hayan completado su carga de esta manera:
add_action('plugins_loaded', 'my_late_loader');
La función my_late_loader se inicia después de todos los demás complementos, lo que me permite usar ganchos definidos por otros complementos en mi propia función my_other_function que se inicia dentro de 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 enrevesado (lo sé), pero esto garantiza que se creen ganchos en otros complementos antes de agregarlos independientemente del orden de carga del complemento.