Connexion à des plugins

12

Je travaille sur un plugin qui serait idéalement capable de faire quelque chose lorsqu'un utilisateur fait quelque chose avec un plugin différent .

Je peux ajouter des points d'ancrage personnalisés dans ces plugins, mais cela ne fonctionnerait évidemment pas bien lorsque je souhaite distribuer mon plugin. Y a-t-il un bon moyen d'ajouter des points d'ancrage aux plugins d'autres personnes à partir de mon propre plugin? Est-ce la seule vraie solution de demander à l'auteur d'inclure des points d'ancrage personnalisés afin que d'autres développeurs puissent s'appuyer sur leur travail?

Exemple: je veux faire quelque chose dans mon plugin quand quelqu'un retweet un article. S'il existait un point d'ancrage personnalisé dans le plug-in Retweet populaire auquel je pouvais m'attacher, ce serait génial. Donc, je peux modifier leur plug-in pour l'inclure, mais cela ne fonctionne que pour ma copie et je ne veux pas essayer de le redistribuer.

Avons-nous juste besoin d’essayer d’être de meilleurs développeurs de plugins afin de pouvoir jouer tous ensemble bien?

    
posée Ryan Elkins 14.08.2010 - 21:10

4 réponses

6

@Ryan Elkins:

Je suppose que la réponse dépend de la manière dont chaque cas d'utilisation est importé pour vous. Dans certains cas, il s’agirait là d’une chose dont vous auriez besoin rapidement, dans d’autres, ce pourrait être un cas d’utilisation plus important. Voici les deux choses qui me viennent à l’esprit:

Recherchez des points d'ancrage alternatifs dans WordPress Core

Si c'est quelque chose de rapide et de sale, vous pouvez parfois utiliser d'autres hooks en aval du noyau pour modifier vos besoins, ou les deux en amont et en aval via l'utilisation de ob_start() / ob_end_clean() (voir Réponse de @Todd Perkins à" Traitement de la sortie HTML volumineuse via le code du plugin " pour un exemple de code.)

Pour repérer les points d'ancrage, utilisez le plug-in Crochets d'instrument J'ai posté hier pour vous aider à trouver les hooks que vous pouvez potentiellement utiliser.

Soumettez un correctif avec votre crochet souhaité au développeur du plug-in

Si votre cas d'utilisation est plus important pour vous ou pour la communauté, nous vous recommandons d'aller de l'avant et d'ajouter le point d'ancrage nécessaire au plug-in. Ensuite, testez-le bien pour vous assurer qu'il répond vraiment à votre cas d'utilisation, après quoi vous pourrez soumettre un correctif au développeur du plug-in dans l'espoir qu'il l'applique. De cette façon, vous leur simplifiez au maximum la tâche en leur fournissant du code testé et vous vous retrouvez vous-même à utiliser le cas d'utilisation pour vous assurer qu'il correspond vraiment à vos besoins. Je ne peux pas vous dire combien de fois j’ai pensé qu’il me fallait un certain crochet uniquement après avoir essayé d’en implémenter un, mais un crochet différent de celui que j’avais envisagé.

Si vous n'êtes pas familiarisé avec la création d'un correctif, voici un bon article sur l'application de correctifs pour WordPress qui s'applique le plus à l'application de correctifs pour les plugins. Ce qui ne devrait pas être évident:

Espérons-nous que cela vous aide?

P.S. Une chose que je trouve un peu décevante et que répond à votre question est le pourcentage de plug-ins conçus uniquement pour les utilisateurs finaux, c’est-à-dire qui n’ont pas de crochets propres. Imaginez si WordPress était conçu comme la plupart des plugins? Ce serait inflexible et une solution très niche.

Peut-être que les choses seraient différentes si WordPress avait la possibilité d’installer automatiquement les plugins dont dépendaient d’autres plugins? En tant que tel, je dois généralement écrire une grande partie des fonctionnalités dont j'ai besoin, car les clients veulent les choses d'une certaine manière et les plugins disponibles, alors que 90% d'entre eux ne me permettent pas la flexibilité de mettre à jour les 10% restants.

Je souhaite vraiment que les dirigeants de la communauté WordPress identifient un moyen de s'assurer que les plug-ins sont récompensés pour l'application des meilleures pratiques (comme l'ajout de points d'ancrage pour les autres développeurs), tout comme les bonnes réponses sont récompensées sur un site StackExchange.

    
réponse donnée MikeSchinkel 14.08.2010 - 23:45
2
  

Devons-nous simplement essayer et de devenir de meilleurs développeurs de plug-ins afin que nous puissions tous bien jouer ensemble?

Pour commencer, oui.

  

Est-ce la seule véritable solution de demander à l'auteur d'inclure des points d'ancrage personnalisés afin que d'autres développeurs puissent s'appuyer sur leur travail?

Ce serait une bonne solution.

Vous pouvez également copier l'autre plug-in et ajouter simplement les modifications, bien que ce soit plus fastidieux.

    
réponse donnée Arlen Beiler 14.08.2010 - 21:37
2

Je pense que vous répondez à votre question, de sorte que cela devienne quelque peu rhétorique.

Évidemment, vous parlez d'un système similaire à celui préconisé par Google avec Android et le système Intent, selon lequel une application peut publier des actions qu'elle est capable de réaliser pour le compte d'autres applications, qui peuvent ensuite s'y accrocher et passer données en arrière. Personnellement, je pense que c’est quelque chose que nous devons cibler en tant que bons développeurs. Nous utilisons WordPress car il est déjà génial, mais suffisamment génial pour que la décision de l’utiliser ou de développer un produit interne similaire soit facile dans la plupart des cas. Le référentiel de plugins lui-même est encore une fois la même chose, principalement en tant qu’utilisateur final + développeur - pourquoi développer un plugin Twitter alors qu’il en existe un de très bon.

Le même "pourquoi développer des doublons" est au cœur de votre question. Le système Android Intent permet aux applications d'utiliser les fonctions déjà créées et de transmettre des données entre elles, ce qui est populaire et souvent utilisé car il est poussé à l'extrême. Un système similaire a déjà été implémenté dans WordPress, mais il est très rarement utilisé au-delà des crochets présents dans le code principal, qui sont très utilisés.

Cela présenterait des avantages pour la communauté si davantage de points d'ancrage dans les plugins personnalisés étaient présents, mais comme vous le dites, il n'y a pas de moyen facile d'ajouter des points d'ancrage quand et où vous en avez besoin.

En ce qui concerne le plug-in Twitter auquel vous souhaitez vous connecter, envoyez un e-mail à l'auteur, je suis sûr qu'il serait ravi de l'ajouter pour vous.

S'il y a un endroit que vous pensez être un bon endroit pour accrocher votre plugin, faites-le, et documentez-le bien. Si davantage de personnes commencent à accrocher des plug-ins, ou s'il y a une tendance générale à le faire, cela finira par se produire.

Donc, pour répondre à la dernière question de:

  

Avons-nous juste besoin d’essayer d’être de meilleurs développeurs de plugins afin de pouvoir jouer tous ensemble bien?

Oui.

Edit: J'ai réfléchi davantage à la question et au meilleur moyen d'implémenter des hooks. Pourriez-vous ajouter une action à exécuter si la fonction que vous essayez d'exécuter du plugin était présente?

    
réponse donnée nobody 14.08.2010 - 21:44
0

définir une fonction:

function my_footer() {
    do_action('my_footer');
}

maintenant vous pouvez accrocher sur ce crochet: add_action('my_footer', 'example_function', 1); # Pour plus d'informations, consultez la ma publication .

    
réponse donnée bueltge 14.08.2010 - 21:35

Lire d'autres questions sur les étiquettes