4 étapes pour devenir un développeur de plugins WordPress • WPShout

By | octobre 6, 2020

WordPress pas cher

Cet article vous prendra par la main et vous conduira à devenir développeur de plugins WordPress. Nous analyserons quand les circonstances nécessitent l'écriture d'un plugin, où placer le code de votre plugin et quelques bonnes pratiques, et vous donnerons un avant-goût de quelques concepts WordPress concernant le développement de plugin tout en codant un plugin simple.

Vous avez donc développé des thèmes, probablement en ajoutant du CSS et peut-être des barres de navigation ou des fonctions de pied de page. Comment savoir quand il est temps de faire un saut dans le développement de plugins WordPress?

Qu'est-ce qu'un plugin WordPress?

Un plugin est un morceau de code qui ajoute des fonctionnalités à votre site au-delà de ce que WordPress vous offre à sa base.

Un plugin est un morceau de code qui ajoute des fonctionnalités à votre site au-delà de ce que WordPress vous offre à sa base. Le code peut modifier le contenu d'un article ou ajouter quelque chose au site, ou vous permettre de faire des choses du côté administrateur du site.

Un plugin peut ajouter aussi peu ou autant de fonctionnalités que nécessaire: un petit plugin peut, par exemple, insérer un script Google Analytics dans votre site ou ajouter une vignette à vos articles, ou envoyer des notifications par e-mail aux commentateurs lorsque leur commentaire a reçu une réponse. . Un plugin de taille moyenne peut ajouter une barre d'outils d'accessibilité à votre site, activer l'incorporation de documents PDF et WORD dans votre publication ou ajouter un système de recommandation à votre site. Les gros plugins peuvent ajouter des fonctionnalités impressionnantes au site, telles que l'ajout d'un système de forum, l'ajout de nombreuses améliorations SEO ou la transformation du site en magasin.

Les plugins sont construits sous forme de dossiers contenant au moins un fichier PHP, à l'intérieur wp-content / plugins.

Dans ses bases techniques, un plugin WordPress est un dossier qui réside dans votre site WordPress wp-content / plugins dossier. Le dossier contient, à tout le moins, un php fichier avec un code qui influence la fonctionnalité du site.

Comment devenir un développeur de plugins WordPress, en 4 étapes

Puisqu'un plugin WordPress peut être et faire à peu près n'importe quoi, il n'y a aucune limite à la complexité du développement de plugins WordPress personnalisés en tant que sujet. Cependant, se lancer dans le développement de plugins personnalisés est aussi simple que de suivre les quatre étapes ci-dessous:

1.Assurez-vous que vous avez besoin d'un plugin personnalisé

Vous avez donc décidé que votre site avait besoin de fonctionnalités supplémentaires. Cela signifie-t-il automatiquement que vous devez vous asseoir et créer un plugin? Pas nécessairement. De nombreux changements de fonctionnalités sont mieux gérés en modifiant votre thème WordPress, ou sont bien couverts par les plugins existants.

Vous voudrez poser ces deux questions avant de vous lancer:

Vos modifications sont-elles basées sur des données ou uniquement sur l'affichage?

Même si nous comprenons que toucher les fichiers de base n'est pas une option, nous n'avons toujours pas nécessairement à placer le code dans un plugin. Lorsque la fonctionnalité que vous souhaitez intégrer est étroitement liée au thème de votre site, l'ajouter au thème lui-même est logique. Le thème a un fichier dédié à l'ajout d'un tel code: le functions.php fichier. Des fonctionnalités telles que l'ajout de barres de navigation, de zones de widgets, de fichiers de traduction, la prise en charge des images en vedette, etc., conviennent parfaitement pour appartenir au functions.php.

Cependant, si vous souhaitez que la fonctionnalité reste même lorsque vous modifiez un thème, vous souhaitez que ce code réside en dehors du thème, et c'est là que les plugins entrent en jeu.

Existe-t-il un plugin qui fait ce que vous voulez?

Nous avons donc déterminé que le code appartient à un plugin, mais avant de nous asseoir et de produire du code, regardons d'abord dans le référentiel de plugins de WordPress. Le référentiel de plugins contient des dizaines de milliers de plugins, couvrant une multitude de catégories: générateurs de formulaires, sécurité, sauvegarde, mise en cache, forums, commerce électronique et bien d'autres. Vous pouvez vous faire une idée de nombreux plugins de développement utiles à partir de nos vidéos de tutoriel. La pléthore de plugins WordPress existants signifie que pour la plupart de ce que nous voulons ajouter au site, il existe déjà un plugin.

Alors, quand choisirions-nous d'exécuter notre propre plugin? Quand aucun plugin existant ne fait exactement ce que nous voulons, ou les plugins qui le font, sont gonflés et ajoutent plus de complexité que nous le souhaiterions.

Temps de plugin personnalisé!

D'accord, nous avons vérifié que nous devrait utiliser un plugin, et qu'aucun plugin existant ne fait ce que nous voulons. Il est temps pour nous d'écrire un plugin!

Quoi? Nous? Ecrire un plugin? Mais nous n'en avons jamais écrit, nous avons à peine écrit PHP – comment pouvons-nous nous lancer dans le développement de plugins? C’est pour cela que nous sommes là: une plongée guidée, étape par étape, dans le monde magique du développement de plugins WordPress.

2. Créez le dossier et le fichier du plug-in

Nous allons commencer par créer suffisamment de plugins pour vous permettre de le voir dans l'écran des plugins sur votre site. Le plugin ne fera encore rien, mais il apparaîtra dans la liste des plugins de votre site.

  1. FTP dans le système de fichiers de votre site
  2. Aller au contenu wp dossier
  3. Allez dans le plugins dossier
  4. Créez un dossier et nommez-le comme votre plugin est censé faire. Si cela nécessite plusieurs mots, mettez un trait d'union entre eux. Par exemple, si notre plugin affiche les messages de balises dans l'ordre chronologique inverse, nommons le dossier afficher-balise-messages-ordre-inverse.
  5. Créez un fichier PHP et donnez-lui le même nom que celui que vous avez donné au dossier (y compris les tirets). Dans l'exemple ci-dessus: display-tag-posts-reverse-order.php.
    contenu wp /
     |
     | - plugins
     | | - nom-de-votre-plugin /
     | | | - nom-de-votre-plugin.php

3. Insérez un en-tête de commentaire pour que le plugin apparaisse dans l'écran de la liste des plugins

  1. Ouvrez le php et insérez un en-tête de commentaire (similaire à l’en-tête de commentaire dans le style.css du thème). L'en-tête de commentaire minimum ne peut avoir qu'un seul champ – le nom du plugin – mais nous ajouterons quelques champs supplémentaires pour qu'il apparaisse comme tous les autres plugins:
    <? php
    / **
    * Nom du plugin: VOTRE NOM DE PLUGIN
    * Description: UNE DESCRIPTION DE LA FONCTIONNALITÉ DU PLUGIN
    * Auteur: VOTRE NOM
    * Version: 1.0
    * /

    Remarque: souvenez-vous de la balise PHP d'ouverture au début du fichier. Sans cela, WordPress ne reconnaîtra pas l'en-tête du commentaire.

  2. Un commentaire d'en-tête complet peut comprendre tous ces champs (vous pouvez lire la définition de chaque champ dans le manuel de développement de plugins de wordpress.org): Nom du plugin, URI du plugin, Description, Version, Nécessite au moins, Nécessite PHP, Auteur, URI de l'auteur, Licence, URI de licence, domaine de texte, chemin de domaine, réseau.

Accédez maintenant à l’écran du plugin de votre site et, voilà, votre plugin est là!

Votre plugin apparaît dans l'écran de la liste des plugins

Maintenant, mettons du code dans ce plugin pour que votre plugin fasse réellement quelque chose…

4. Écrivez le plugin PHP actuel

Si vous n'êtes pas familier ou à l'aise avec PHP, cette étape pourrait être ce qui vous a empêché d'écrire un plugin jusqu'à présent. Notre cours gratuit sur PHP pour WordPress peut vous aider:

PHP pour le développement WordPress: le cours gratuit

Dans tous les cas, n'ayez pas peur: même sans maîtriser PHP, vous pouvez commencer à écrire votre premier plugin.

Lorsque je cherche à ajouter des fonctionnalités spécifiques à un site, je commence généralement par une recherche sur le Web. La recherche mènera généralement à un code qui implémente mes besoins. Et s'il est important de comprendre ce que fait le code et comment il fonctionne, vous êtes toujours dispensé d'avoir à écrire le code vous-même.

Nous allons écrire un plugin simple qui affecte des pages d'archives de balises spécifiques, les obligeant à afficher les publications dans l'ordre chronologique inverse.

Dans cette section, nous allons écrire un plugin simple qui affecte les pages d'archive de balises particulières que nous spécifions, et fait que leurs publications soient répertoriées dans l'ordre chronologique inverse. En faisant cela, nous allons apprendre à préfixer les noms de fonctions, à utiliser des hooks, à nous familiariser avec les paramètres de requête et à d'autres méthodologies que j'ai apprises des meilleurs développeurs de plugins WordPress.

Noms des fonctions de préfixe

Lors de l'écriture d'un plugin qui n'est pas encapsulé dans un espace de noms ou une classe, les fonctions du plugin font partie de la portée globale de WordPress. Cela signifie qu’elles sont dans la portée de nombreuses autres fonctions, dont nous ne connaissons pas les noms. Ne pas connaître d'autres noms de fonction pourrait nous amener à donner à notre fonction un nom qui existe déjà, ce qui signifierait que soit cette fonction remplacerait la nôtre, soit la nôtre la remplacerait. Aucun de ceux-ci n'est le résultat souhaité, et nous devons donc donner à nos fonctions des noms uniques. Le moyen le plus simple de le faire est de préfixer chaque nom de fonction avec une variante du nom de notre plugin.

Si le nom de notre plugin est court, comme mon-plugin, nos fonctions peuvent être appelées mon-plugin-get-posts ou mon-plugin-mise en file d'attente-scripts. Cependant, nous ne voulons pas de noms de fonction longs, donc si notre plugin a un nom long, nous pouvons l'abréger. Par exemple, si notre plugin est appelé afficher-balise-messages-ordre-inverse, nous pouvons l'abréger en dtpro et appelez nos fonctions dtpro-get-posts ou scripts-dtpro-enqueue.

Une autre solution consiste à utiliser des espaces de noms. Bien que j'aimerais aussi entrer dans cela, je souhaite également garder cet article court et basique, c'est pourquoi je vais simplement vous renvoyer à un article plus détaillé sur les espaces de noms dans WordPress:

Que signifient les «espaces de noms» pour les développeurs WordPress

Crochets

Les hooks sont le moyen par notre plugin de puiser dans le flux de travail WordPress à des points donnés de l'exécution du code. Si nous écrivons simplement une fonction qui récupère les articles dans l'ordre chronologique inverse, comment WordPress saura-t-il que notre code existe? Qu'est-ce qui va faire arrêter le site et dire: attendez, il y a ce code de plugin qui doit s'exécuter maintenant?

C’est là que les crochets entrent en action. Le code de WordPress a de nombreuses jonctions dans lesquelles il s'arrête et dit: "Ici, je veux exécuter tout le code qui veut puiser dans mon flux de travail à ce stade". Dans les mots immortels de Jan Fabry, un des meilleurs utilisateurs de WPSE:

«Les hooks WordPress fonctionnent comme Hollywood: vous ne les appelez pas, ils vous appellent. Mais contrairement à Hollywood, ils continuent d'appeler tout le monde sur la liste.

Donc, dans notre code, nous définissons le point auquel nous voulons accrocher, et quelle fonction nous voulons que WordPress exécute ensuite. Afin de comprendre le code que nous utilisons pour définir cela, nous allons simplement expliquer qu'il existe deux types de hooks: crochets d'action et crochets de filtre. Leur explication dépasse le cadre de cet article. Je vous recommande donc de lire l'article détaillé de WPShout à leur sujet.

Hooks, actions et filtres WordPress: ce qu'ils font et comment ils fonctionnent

Pour nos besoins, il suffit que le crochet que nous utiliserons soit un crochet d'action, et nous nous accrocherons au pre_get_posts action. Comme expliqué dans l'excellent article Utilisations pratiques de pre_get_posts, "pre_get_posts est une action qui vous permet modifier une WP_Query c'est-à-dire «sur le point de s'exécuter», ce qui signifie «sur le point de demander à la base de données un lot d'articles». Avant que la requête ne puisse être acheminée vers la base de données et obtenir son ensemble de publications, nous allons nous lancer et changer lequel poste la requête demandera réellement. Cet ordre des événements est comment pre_get_posts tire son nom. "

Puisque nous voulons changer l'ordre dans lequel les articles sont récupérés de la base de données dans certaines balises, c'est le point de code idéal pour que nous puissions entrer et insérer nos modifications.

Balises conditionnelles

Nous avons donc demandé à WordPress d'exécuter notre code à chaque fois qu'il accède à la base de données. Mais nous ne voulons pas modifier l'ordre des publications sur l'ensemble du site, uniquement dans ces pages de balises.

Comment fait-on cela? Nous disons à WordPress de modifier la requête seulement sous certaines conditions: Que nous sommes dans une page de balises, que nous sommes dans une balise particulière, et que la requête en cours d'exécution est la principale (car il y a plusieurs autres requêtes en cours d'exécution sur chaque page: pour la barre de navigation, ou une barre latérale, etc. .)

Comment utiliser les balises conditionnelles WordPress

Paramètre WP_Query

La requête qui récupère les publications de la base de données, en utilisant le WP_Query class, a de nombreux paramètres permettant de récupérer les messages: par auteur, catégorie, par statut ou par date, et bien d'autres. Dans notre cas, il n'y a qu'une chose que nous souhaitons changer: l'ordre dans lequel les messages sont récupérés. Nous allons donc simplement définir ce paramètre et envoyer la requête sur son chemin.

Un exemple de code PHP de plug-in

Après toutes ces explications, voici le code complet. Il vous suffit de l'insérer dans votre fichier de plug-in après l'en-tête du commentaire, de modifier le slug de la balise en fonction de vos besoins et de l'utiliser à votre guise.

add_action ('pre_get_posts', 'dtpro_get_posts');

/ **
 * Pour la balise 'mooc' uniquement, affichez les articles par ordre croissant de date, afin qu'ils puissent être lus du début à la fin
* /
function dtpro_get_posts ($ query) 
if ($ query-> is_tag () && ($ query-> query_vars['tag']== 'mooc') && $ query-> is_main_query ()) 
$ query-> set ('ordre', 'ASC');

Code complet de cet exemple de plug-in, avec en-tête de commentaire

Voici le code complet, de haut en bas, du fichier PHP principal qui créerait ce plugin:

is_tag () && ($ query-> query_vars['tag']== 'mooc') && $ query-> is_main_query ()) 
$ query-> set ('ordre', 'ASC');

Déposez-le dans un nouveau dossier (nommé n'importe quoi, mais en le nommant dtpro aurait probablement un sens) à l'intérieur / wp-content / plugins rendrait ce plugin et ses fonctionnalités disponibles dans l'administrateur WordPress. Essaie!

Où aller en partant d'ici

Dans cet article, nous avons appris à écrire notre premier plugin, et vous devriez officiellement vous considérer comme un développeur de plugin WordPress après avoir réalisé cela!

Il existe, bien sûr, de nombreux chemins dans lesquels vous pouvez naviguer à partir d'ici: vous pouvez plonger dans tout ou partie des articles liés à cet article; vous pouvez lire notre tutoriel étape par étape sur l'écriture d'un plugin WordPress à partir de zéro; vous pouvez vous plonger dans le manuel du développeur de plugins de wordpress.org, ou vous pouvez suivre notre cours UP and Running qui contient un chapitre dédié à l'introduction au développement de plugins WordPress.

Quel que soit le chemin que vous empruntez, que vous suiviez les traces des autres ou que vous ouvriez votre propre chemin, bonne chance et bon voyage!