Fermer

octobre 10, 2018

Une introduction au développement de plugins WordPress –


Vous recherchez une introduction au développement de plugins WordPress qui traitera de toutes les étapes importantes et vous tiendra la main? Si oui, vous avez de la chance. Ce didacticiel décrira les bases de ce que vous devez savoir sur la conception de vos propres plugins et quelques conseils sur les meilleures pratiques.

 Développement de plugins WordPress

Que sont les plugins WordPress?

Les plugins sont l’un des principaux atouts de WordPress . Les plugins sont essentiellement des modules que vous activez sur votre site Web pour fournir une série de fonctionnalités ou d’éléments.

La fonctionnalité que vous pouvez ajouter à votre site Web dépend de la raison pour laquelle chaque plugin a été créé. Il existe une vaste sélection de plugins, allant de simples plugins (comme ceux ajoutant du style ou de petits changements de thème) à des plugins étendus (apportant des changements significatifs tels que des intégrations de commerce électronique ou des connexions tierces).

Les plug-ins sont différents de votre thème et fonctionnent de manière indépendante. Ils utilisent des crochets, des filtres, des codes courts, des widgets et du code personnalisé pour exécuter leurs fonctionnalités.

Forces, faiblesses et considérations

Les plugins sont excellents, ils fournissent aux développeurs et aux administrateurs un moyen d'étendre et de réutiliser des fonctionnalités. Même s’ils sont un excellent outil, ils ont toujours leurs forces et leurs faiblesses.

Points forts

  • Vous pouvez ajouter des plugins avec presque tous les thèmes et vous attendre à ce qu'il fonctionne correctement. Les plugins ont été créés pour être modulaires afin que vous puissiez les copier dans un nouveau projet (ou les distribuer), ce qui est très bien.
  • Un plugin agit comme un conteneur pour tout votre code et vos éléments. Si vous construisez une fonctionnalité similaire dans le thème, vous risquez de confondre les éléments. Avec un plugin, tout ce qui doit fonctionner existe dans un même package.
  • Ils sont faciles à créer et peuvent tirer parti des actions et des points d'ancrage du filtre de WordPress.
  • Peut être créé facilement de manière orientée objet, créant un code plus robuste et gérable.

Faiblesses

  • Accès limité au thème du site. Les plugins ne peuvent pas générer de code directement dans un emplacement sur un thème. Un thème doit fournir une zone de sortie pour votre plugin, telle que la zone de contenu ou via une zone de widget.
  • Des conflits de plugins se produisent. Parfois, un autre plugin (ou même le thème) affectera négativement votre plugin et cela peut ruiner l'expérience (par exemple, vous pourriez utiliser le programme de téléchargement de média WordPress et il a été modifié et ne fonctionne plus comme prévu, ce qui ruine votre plugin).
  • Accès limité aux modèles et aux dessins. Les plugins sont supposés fournir les fonctionnalités et le thème, les styles.

Prenons un instant pour parler de certains aspects clés du développement des plugins.

Vous connaissez peut-être ces domaines si vous avez travaillé sur des thèmes WordPress. Toutefois, une solide compréhension du fonctionnement de ces concepts vous aidera à créer des fonctionnalités faciles à utiliser et à gérer.

Actions (crochets)

Un crochet d'action est une activité exécutée par WordPress à une heure précise. Lorsque cette action est déclenchée, toutes les fonctions attachées à cette action sont trouvées et exécutées dans le bon ordre.

WordPress comporte des dizaines d'actions définies dans ses fonctionnalités principales, chaque action consistant en un nom unique. Par exemple, lorsque WordPress enregistre une publication (telle qu'une publication, une page ou un autre type de contenu), elle appelle l'action save_post qui recherche toutes les fonctions associées à cette action.

Toutes les actions sont: défini à l'aide de la fonction do_action () . Cette fonction prend en compte les paramètres suivants

  • $ tag (requis)
  • $ args (une ou plusieurs variables en option)

Globalement, chaque action aura son nom (son tag ) et aussi un nombre optionnel de variables utiles supplémentaires (il peut y avoir plusieurs variables ou zéro variables supplémentaires)

Une action WordPress simple

Considérons le crochet d’action save_post . Cette action prend quatre valeurs. La première valeur est le nom de l'action, tandis que les trois autres sont des variables supplémentaires accessibles (contenant l'id de la publication, l'objet de publication lui-même et également si les publications existent et sont en cours de mise à jour)


 do_action ( `save_post`  $ post_ID  $ post  $ update ); 

Vous pouvez vous accrocher à cette action de sorte que poste est enregistré, vous pouvez faire autre chose, comme envoyer et envoyer un courrier électronique ou mettre à jour la base de données.

Créer vos propres actions

Alors que WordPress est doté de nombreuses actions, vous pouvez définir les vôtres. En créant vos propres actions, vous pourrez appeler facilement vos fonctionnalités à des points définis dans votre thème ou plug-in.

Utilisons la fonction do_action pour créer notre nouvelle action. Nous allons créer une action qui sera appelée tout de suite après le titre sur une seule pages .

 //  créer  une nouvelle action    à  utilisée  après  le titre de notre page
do_action ( 'page_subtitle' $ post);  

Quand une seule page est affichée, elle affiche le titre comme étant normal et ensuite, elle apparaît sur notre page . ] page_subtitle action. WordPress vérifie toutes les fonctions liées à cette action et les exécute (il passera dans la variable globale $ post afin que la fonction sache à quelle page le sous-titre doit être affiché.)

Fonctions en appelant votre action

Pour appeler une fonction spécifique lorsqu'une action est en cours, vous devez utiliser add_action () pour associer votre fonction. add_action prend ensuite les paramètres suivants.

  • $ hook (requis)
  • $ function_to_add (requis)
  • $ priorité (facultatif)
  • $ accepté_args (facultatif, mais obligatoire lorsque l'action comporte plus d'une variable passée)

Utilisation des arguments obligatoires

Vous pouvez appeler la fonction add_action en fournissant les valeurs obligatoires du nom du hook et de la fonction. appel. C'est le moyen le plus simple d'appeler vos actions.


 add_action ( 'save_post'  'save_my_custom_post' );

 function   save_my_custom_post  ( $ post_id )  {
    
} 

Comme vous pouvez le constater, lorsque l'action save_post se produit, nous y attachons notre fonction save_my_custom_post qui nous permet de faire quelque chose après la sauvegarde.

Utilisation de tous les arguments (compréhension de la valeur de la priorité et des valeurs acceptées_args)

Parfois, l’utilisation des valeurs obligatoires ne suffira pas. Il se peut que vous deviez définir manuellement les valeurs $ priorité et $ supported_args pour que votre action fonctionne.

La priorité de l'action détermine l'ordre dans lequel les fonctions seront exécutées. Par défaut, les actions utiliseront la valeur de 10 pour sa priorité. Vous pouvez définir cette valeur plus haut ou plus bas pour que votre fonction s'exécute plus tôt ou plus tard. Ceci est utile lorsque votre thème ou vos plugins utilisent également le même crochet d'action (vous pouvez donc spécifier le moment où votre fonction doit être exécutée).

Les supported_args font référence au nombre de variables passées dans le . ] add_action appel. Le nombre par défaut d'arguments qu'une action accepte sera un. Toutefois, si votre action prend en compte plusieurs variables, vous devez indiquer à WordPress le nombre d’actions qu’elle prend. Regardons l’action save_post .

 // l’action sauvegarde, définie  dans  WordPress
do_action ( 'save_post' $ post_ID, $ post, $ update);

// ajoute notre fonction    sur   le  ' save_post '  crochet  fournissant la priorité     et   ] args 
 add_action  ('save_post', 'save_my_page_extended, 10,3) ;

//  fonction   exécutée   sur   save   (nous voulons les trois variables) 
 function   save_my_page_extended  ($ post_ID, $ post, $ update)  {
    // accède à toutes nos variables pour  faire  du travail
}

L'action save_post contient plusieurs variables pouvant être transmises. Vous devez donc définir sa priorité ainsi que le nombre de variables qu'elle transmettra. Une fois que nous avons annoncé à WordPress que nous accepterions plusieurs variables, nous pouvons les ajouter à notre fonction et nous pourrons y accéder.

Résumé des actions

Dans l'ensemble, vous utiliserez la fonction do_action à l'intérieur de votre thème ou de votre plug-in pour exécuter du code à un emplacement donné (définition des valeurs disponibles pour toute fonction accrochée). Vous utiliserez ensuite la fonction add_action pour accrocher votre fonction spécifique. Vous pouvez appeler votre action avec le strict minimum (le nom de l'action et la fonction que vous souhaitez appeler), ou vous pouvez également fournir la priorité et le nombre de variables qui seront transmises,

Filtres (crochets) [19659004] Un filtre WordPress est un crochet qui accepte une variable (ou une série de variables) et les renvoie après leur modification. Ces filtres sont souvent utilisés pour vous permettre de manipuler les informations par défaut.

WordPress est fourni avec des dizaines de filtres. Ils sont créés à l'aide de la fonction apply_filters () . Cette fonction reprend les arguments suivants

  • $ tag (requis)
  • $ value (requis)
  • $ var (facultatif)

La La ​​variable $ tag est le nom du filtre.
La valeur $ est la variable ou la valeur qui sera filtrée.
La variable $ var est facultative mais vous permet de transmettre des valeurs supplémentaires à votre fonction.

Les plug-ins et les thèmes créent souvent ces filtres pour vous permettre de modifier des éléments sans avoir à modifier le source ( les rendant extensible). Ces filtres sont souvent définis dans des fonctions.

Un filtre WordPress simple

Le filtre get_the_excerpt est un filtre que vous pouvez utiliser dans la boucle de messages pour accéder à l'extrait.

Ce filtre fait partie du coeur de WordPress et ne définit que le nom du filtre et la fonction à appeler. Il ne définit aucun argument optionnel.

 // récupérez le  sauf   pour  un poste,  comme  défini  dans  / wp-includes/post-template.php
echo apply_filters ( 'the_excerpt' get_the_excerpt ()); 

Vous pouvez associer votre propre fonction au filtre the_excerpt puis manipuler l'extrait avant de le retourner (par exemple, vous pouvez l'envelopper dans un conteneur, en changer le contenu ou en en réduire la longueur)

Création de vos propres filtres

Regardons un exemple. Si nous créons un tableau de noms dans un plugin, nous pouvons le rendre filtrable en utilisant le crochet apply_filters pour indiquer à WordPress que ces valeurs peuvent être changées par n'importe quelle fonction qui y est associée.


  $ name_values ​​ = apply_filters ( 'filter_name_array_values' ,
             array  ( 'Joanna'  'Peter' )
)

Créer un filtre comme celui-ci permettra aux autres développeurs (ou à vous-même) de modifier ces valeurs de manière dynamique. Généralement, si vous êtes dans une fonction ou utilisez une fonctionnalité quelconque, il est recommandé de proposer des filtres pour rendre vos éléments extensibles.

Exécution de vos filtres

Lorsque vous souhaitez exécuter votre filtre, vous devez utiliser la fonction add_filter () . Cette fonction prend les valeurs suivantes

  • $ tag (requis)
  • $ function_to_add (requis)
  • $ priorité (facultatif)
  • (1965) ] $ supported_args (facultatif mais obligatoire si plusieurs arguments sont passés)

La fonction add_filter fonctionne de manière similaire à add_action . Vous définissez le nom du filtre que vous souhaitez appeler, ainsi que la fonction qui sera appelée et le tour est joué. Voyons comment l’utiliser pour filtrer la liste de noms que nous avons créée dans notre exemple précédent.


  function   add_new_names  ( $ names )  {
     $ names []  =  'Simon' ;
     retournez   $ noms ;
}
add_filter ( 'filter_name_array_values'  'add_new_names' [1359025]); 

Comme vous pouvez le voir, nous ajoutons notre fonction add_new_names à notre filter_name. ] filtrer et prendre en compte une seule variable de $ noms . Lorsque nous avons défini notre filtre auparavant avec apply_filters nous avons défini les valeurs par défaut comme étant un tableau avec les valeurs de Joanna et Peter.

Notre fonction ici reprendra les valeurs existantes (que nous avons appelées $ names ici pour simplifier) ​​et ajouta une nouvelle valeur à sa fin appelée Simon.

À la toute fin, nous renvoyons les valeurs. Il est très important de renvoyer les valeurs. Sinon, vous allez tout casser . La raison pour laquelle les valeurs doivent être renvoyées est parce que toute fonction supplémentaire également attachée à ce filtre recevra ces valeurs. Si vous ne les renvoyez pas, ils n’auront rien à utiliser.

Résumé des filtres

Vous utiliserez la fonction apply_filters pour créer vos filtres dans votre thème ou votre plugin (en fournissant les valeurs que vous souhaitez filtrer). Vous utiliserez ensuite la fonction add_filter pour accrocher votre fonction spécifique à ce filtre, ce qui vous permet de manipuler la variable filtrée et de la renvoyer.

Codes abrégés

Pour un article plus complet sur les codes abrégés, vous pouvez. lire ou afficher l'API de shortcode sur le codex WordPress ou lire mon article précédent sur le code personnalisé de WordPress . Ce qui suit sera un bref résumé pour vous permettre de démarrer avec les codes courts.

Comme votre plug-in n’a généralement pas accès à vos fichiers de thème, vous avez besoin d’un moyen d’afficher vos fonctionnalités personnalisées à l’utilisateur final tout en facilitant la personnalisation par l’administrateur de votre site.

Les codes abrégés constituent un moyen idéal, car ils permettent aux développeurs de créer des fonctionnalités complexes pouvant être modifiées à l'aide de valeurs et d'attributs simples. Ces codes courts sont ajoutés à l'éditeur visuel (ou à d'autres emplacements) et, lorsqu'ils sont visualisés par vos utilisateurs, ils exécutent votre code.

Un shortcode sous l'éditeur:

 Exemple de backend pour shortcode WordPress

Un shortcode lorsqu'il est traité et affiché au début:

 Exemple pour WordPress Shortcode Frontend

A Leçon rapide sur les codes courts

Vous devrez créer votre code court à l'aide de la fonction add_shortcode () . Cette fonction prendra dans la première variable le nom de votre shortcode et la seconde étant la fonction de sortie .

La fonction de sortie prendra elle-même trois valeurs; attributs contenu et nom . À l'intérieur de cette fonction, vous construirez votre code court et vous le renverrez pour affichage.

Les paramètres de la fonction seront examinés plus en détail dans notre exemple, vous pouvez les ignorer maintenant.

exemple simple:


 add_shortcode ( 'test_shortcode'  'mon_shortcode_output' );

 function   my_shortcode_output  ( $ atts  $ content  =  ''  $ tag )  ] {
     $ html  =  '' ;
     $ html . =  '

Bonjour le monde

'
;      retour $ html ; }

Maintenant, lorsque nous ajoutons le code court [test_shortcode] à l'éditeur, notre fonction sera exécutée et les résultats seront convertis en

Hello World

Si vous souhaitez en savoir plus sur les widgets, vous devez commencer par le . ] Page de codex de l’API WordPress Widget . Cette page décrit la majorité de ce dont vous avez besoin, plus un exemple de travail documenté.

Les widgets sont importants car ils vous permettent d’exécuter le code de vos plugins tout en offrant une interface conviviale.

Un exemple de shortcode avec configuration. options.
 exemple de widget

La plupart des thèmes prenant en charge une ou plusieurs barres latérales; L'ajout de vos propres widgets vous donnera un accès rapide pour afficher vos informations dans le thème.

Les widgets sont plus complexes que les codes abrégés mais suivent les mêmes principes: définir certaines options pour leur sortie, puis les afficher au début.

Brève introduction aux widgets

Pour créer un widget, vous devez étendre la classe WP_Widget . WordPress a créé une approche orientée objet des widgets et ils existent en tant que classe; cette classe doit être étendue pour fournir vos fonctionnalités.

Voyons un exemple de widget de base:


   classe   my_widget   s'étend à   WP_widget  {
    
     public   function [19659052] __ construct  ()  {
         parent  :: __ construct (
             'mon_widget' ,
             'Mon widget' ,
             array  ( 'description'  =>  'Un formidable widget' )
        )
        add_action ( 'widgets_init'  array  ( $ this  'register_widget' );
    }
    
     public   function   widget  ( $ args  $ instance )  {
         echo   $ argos  [ 'before_widget' ];
         echo   $ instance  [ "titre" ];
         echo   $ args  [ 'after_widget' ];
    }
    
     public   fonction   forme  ( $ instance )  {
         $ title  = ( isset  (1  $ instance  [ 'titre' ]?  $ instance  [ 'titre' ] [ '' ) ;
         echo   '<input type = "text" id = "' .  $ this  -> get_field_id ( 'titre' ).  ' "name =" '.  $ this  -> get_field_name (' titre '). ' "value =" '.  $ title .  '"/>' ;
    }
    
     public   function   enregistrer  ( $ new_instance  $ old_instance )  {
         $ instance  =  array  ();
         $ title  =  $ new_instance  [ 'titre' ];
         return   $ instance ;
    }
    
     public   function   register_widget  ()  {
        register_widget ( 'mon_widget' );
    }
}
 $ my_widget  =  new  my_widget;

Ceci produira un widget de base dans lequel vous pouvez enregistrer une valeur de texte et l'afficher au début, car vous pouvez voir que la sortie est assez ennuyeuse.

 Exemple de sortie de widget

Dans l'exemple du monde réel à venir, nous examinerons les widgets plus en profondeur.

Classes (conception orientée objet)

La conception orientée objet (OOD) est une technique de développement différente dans laquelle vous construisez votre fonctionnalité autour du concept de classes .

Les classes permettent de stocker des données. fonctions et valeurs associées au sein d’une même entité, vous offrant un emplacement unique pour votre développement. L'objectif global de la conception orientée objet est de créer un objet exécutant vos fonctionnalités.

Les plug-ins sont un candidat idéal pour la conception orientée objet car il s'agit de modules distincts créés pour effectuer une tâche sur votre site Web. Votre plugin contiendra généralement ses propres fichiers CSS et JavaScript, ainsi que potentiellement des images et des fichiers PHP supplémentaires. Par conséquent, le développement à l'aide d'une conception orientée objet facilitera votre développement.

Notre prochain exemple du monde réel sera entièrement orienté objet. Si vous souhaitez en lire davantage, vous pouvez lire mon article Développement orienté objet avec WordPress .

Prochaines étapes

Cet article vous a présenté un grand nombre des concepts de base nécessaires au plugin WordPress. développement. Dans le prochain article, nous examinerons en détail le code d’un exemple concret .




Source link