Dans quel ordre WordPress charge-t-il les fichiers du plugin?

16

Dans quel ordre les plugins sont-ils chargés dans WordPress?

Et dans le dossier d'un plugin particulier, quel ordre est suivi pour le chargement?

    
posée urok93 26.08.2012 - 23:28

2 réponses

21

Réponse à la première question:

  1. Dans wp-settings.php , WordPress commence par rechercher tous les plug-ins à utiliser absolument (plugins dans le dossier facultatif mu-plugins ) et les charge.

  2. Ensuite, si vous exécutez une installation multisite, il recherche les plug-ins activés par le réseau et les charge.

  3. Ensuite, il vérifie la présence de tous les autres plug-in actifs en examinant l'entrée active_plugins de la table de base de données wp_options , puis les parcourt. Les plugins seront listés par ordre alphabétique.

Voici l'ordre dans lequel WordPress charge à peu près tout: enlace

Le fait est que peu importe l'ordre dans lequel chaque plugin est chargé, car les plugins correctement écrits utiliseront des points d'ancrage WordPress, qui vous permettront de connecter des fonctionnalités à des points spécifiques ultérieurement au démarrage de WordPress. (Les plugins correctement écrits préfixeront également leurs fonctions et leurs classes afin qu’il n’y ait pas de conflit.)

Plus d'informations sur l'API du plug-in: enlace

Réponse à la deuxième question:

Dépend totalement du plugin. WordPress ne charge qu'un fichier dans le plug-in, celui qui est généralement nommé the-plugin-name.php et qui contient le titre, la description, l'auteur, etc. en haut. Il appartient au plug-in de charger le reste de ses fichiers, en utilisant require_once et wp_enqueue_script et ainsi de suite.

    
réponse donnée SeventhSteel 26.08.2012 - 23:58
4

Je trouve qu'il est utile d'inclure dans mon plug-in une action de "chargement tardif" qui s'exécute une fois que tous les plugins ont terminé leur chargement, comme suit:

add_action('plugins_loaded', 'my_late_loader');

La fonction my_late_loader est ensuite lancée après tous les autres plugins, ce qui me permet d'utiliser les points d'ancrage définis par d'autres plugins dans ma propre fonction my_other_function qui est lancée dans 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);
}

Un peu compliqué (je sais), mais cela garantit que des points d'ancrage dans d'autres plugins sont créés avant d'être ajoutés quel que soit l'ordre de chargement du plugin.

    
réponse donnée Clinton 10.07.2017 - 14:43

Lire d'autres questions sur les étiquettes