Créer un plugin avec des dépendances

17

J'essaie d'étendre les fonctionnalités d'un autre plugin. Je dois obtenir des données dans un tableau pour les utiliser de manière différente du plugin original. (Dans ce cas, plugins Catégories et Annonces WPMUDev). Y a-t-il quelque chose dans le Codex? Comment créer un plugin pouvant utiliser d'autres fonctions de plugins? Puis-je les étendre et construire les fonctions des nœuds parents? Je ne suis pas sûr si ces plugins utilisent des classes ou simplement des fonctions droites.

J'essaie simplement d'obtenir des données du plug-in dans un widget de la barre latérale (dans un élément d'option de formulaire), mais j'utiliserai éventuellement cela également pour la zone de contenu en utilisant des codes abrégés personnalisés. Pour l'instant, j'ai juste besoin d'un endroit pour commencer.

    
posée DWils 04.09.2013 - 03:47

1 réponse

19

Oui, il est possible de créer un plugin qui étend un autre plugin. Voici quelques idées sur la manière dont vous pourriez vous y prendre:

  1. Un plugin peut configurer ses propres actions et filtres de filtrage (à l'aide des fonctions do_action et apply_filter ), exactement comme le fait le noyau WordPress. Si le plug-in que vous ciblez effectue cela, vous pouvez utiliser ces points d'ancrage pour modifier les fonctionnalités.

  2. Si un plug-in utilise une structure orientée objet, vous pouvez étendre les classes et utiliser le plug-in d'origine.

  3. Vous pouvez lire les données stockées dans la base de données par le plug-in d'origine et les utiliser dans votre code de plug-in.

  4. Vous pouvez appeler n'importe quelle fonction du plugin d'origine que vous aimez, après avoir vérifié que le plugin est actif et chargé (voir ci-dessous). Sachez simplement que la fonction peut avoir des effets autres que la valeur renvoyée.

Vous devrez vérifier si ce plugin original est activé ou non. Vous pouvez utiliser la fonction is_plugin_active ; Cependant, cela ne fonctionne que sur les pages d'administration. Vous pouvez également utiliser function_exists ou class_exists pour vérifier si une fonction ou une classe particulière du plug-in d'origine est disponible, ce qui vous indiquerait qu'elle est en cours d'exécution.

N'oubliez pas que chaque fois que le plug-in d'origine est mis à jour, vous devez tester votre plug-in avec la nouvelle version pour rechercher les nouveautés susceptibles d'entrer en conflit avec votre plug-in.

    
réponse donnée Ben Miller 04.09.2013 - 04:52

Lire d'autres questions sur les étiquettes