web-dev-qa-db-fra.com

comment créer un plugin enfant WordPress

J'aime créer un plugin enfant ..

Explication: -

J'ai un plugin parent nommé X. Cela fonctionnera indépendamment (comme les autres plugins existants).

Maintenant, j'ai décidé d'ajouter quelques fonctionnalités supplémentaires à ce plugin X (pensez à une mise à niveau). Je souhaite donc créer des fonctionnalités supplémentaires par le biais d'un autre plugin Y, qui dépendra de (et héritera de) X.
Ce plugin Y ne fonctionnera pas avec le plugin X.

Comment puis-je faire ceci?

6
Gowri

la meilleure façon de le faire est de faire en sorte que votre plug-in X utilise ses propres points d'accroche pour les actions et les filtres afin que les nouveaux plug-ins (dans votre cas, Y) puissent interagir avec les fonctions et les données du plug-in X. Définir vos propres crochets est assez simple et facile.

Crochet d'action

du codex:

Les actions sont les points d'ancrage que le noyau WordPress lance à des points spécifiques au cours de l'exécution ou lorsque des événements spécifiques se produisent. Votre plugin peut spécifier qu’une ou plusieurs de ses fonctions PHP sont exécutées à ces points, à l’aide de l’API Action.

exemple d'un nouveau crochet d'action:

Function whatever(){
   //regular stuff you do normally 
  do_action('Name-Of-Your-Action-hook', $args1,$args2)
  //regular stuff you do normally
}

Nous pouvons maintenant interagir avec cette fonction et utiliser ses arguments ($ args1, $ args2) à l'aide du hook 'Name-Of-Your_hook'

add_action('Name-Of-Your-Action-hook','hook_function_callback');

Crochet de filtre

du codex:

Les filtres sont les points d'ancrage que WordPress lance pour modifier le texte de différents types avant de l'ajouter à la base de données ou de l'envoyer à l'écran du navigateur. Votre plugin peut spécifier qu’une ou plusieurs de ses fonctions PHP sont exécutées pour modifier des types de texte spécifiques à ces moments-là, à l’aide de l’API filtre.

exemple d'un nouveau crochet de filtre:

Function whatever(){
   //regular stuff you do normally 
   $output = apply_filters('Name-Of-Your-Filter-hook', $output,$args1,$args2)
  //regular stuff you do normally
}

Maintenant, nous pouvons interagir avec cette fonction, filtrer $ output use et ses arguments ($ args1, $ args2) en utilisant le crochet 'Name-Of-Your-Filter-hook'

add_filter('Name-Of-Your_hook','hook_function_callback');

Un bon exemple à cela serait formulaire de contact 7

  • Formulaire de contact 7 - Addon de suivi de campagne
  • Formulaire de contact 7 Extension de texte dynamique
  • Formulaire de contact 7 Calendrier
  • Formulaire de contact 7 Nombre de mots Wordarea
  • Formulaire de contact 7 Customfield in mail
  • Formulaire de contact 7 à l'extension de base de données

et de nombreux autres dont tous (la plupart) sont des plugins qui étendent les fonctionnalités de Contact Form 7 en fonction de ses hooks.

17
Bainternet

Établissez dans votre plugin parent des points auxquels le plugin enfant peut associer sa propre fonction. Enveloppez également le plugin enfant dans if(function_exists('parent-plugin-function')) ou class_exists s'il s'agit d'une classe.

7
Ashfame