Creer un plugin wordpress

Créer un plugin WordPress (orienté SEO) de A à Z

Hello tout le monde, comme vous le savez sûrement, WordPress est aujourd’hui une référence dans le monde des CMS. J’ai commencé à développer des plugins depuis peu de temps (environ 6 mois) et je dois dire que les outils proposés par WordPress nous facilitent grandement la tâche. Dans ce tuto, nous verrons donc comment développer un plugin […]



Hello tout le monde,

comme vous le savez sûrement, WordPress est aujourd’hui une référence dans le monde des CMS.
J’ai commencé à développer des plugins depuis peu de temps (environ 6 mois) et je dois dire que les outils proposés par WordPress nous facilitent grandement la tâche.

Dans ce tuto, nous verrons donc comment développer un plugin WordPress de A à Z. Et histoire de pimenter un peu les choses, j’ai décidé de développer un plugin orienté SEO (assez basique mais permettant de bien comprendre les bases).

En effet, ce plugin nous permettra :
– De changer automatiquement le titre des pages en fonction du nombre de recherche Goolgle sur une expression (grâce au referer). Ainsi, le titre correspondra à l’expression la plus recherchée pour atterir sur notre site
– De consulter ces expressions ainsi que le nombre de recherches

Vous pouvez récupérer le plugin ici : http://www.devandseo.fr/wp-modiftitle.rar
A priori, celui-ci fonctionne mais vu que je l’ai codé un peu rapidement, ça ne m’étonnerait pas qu’il y ait quelques bugs (Si vous avez un souci, c’est par ici pour me contacter)

C’est parti …

Détection Google

Lorsqu’un visiteur arrive sur le site, il nous faut détecter si celui-ci provient de Google, et si oui, quelle est la requête qu’il a tapée.
Voici donc la fonction qui nous permet de faire cela :

 

Structure du plugin

La structure du plugin est la suivante :
– wp-content/plugin/wp-modiftitle/
– wp-content/plugin/wp-modiftitle/lang : les fichiers de traduction
– wp-content/plugin/wp-modiftitle/readme.txt : ce fichier est obligatoire seulement si le plugin est publié
– wp-content/plugin/wp-modiftitle/wp-modiftitle.php : fichier principal
– wp-content/plugin/wp-modiftitle/css
– wp-content/plugin/wp-modiftitle/php
– wp-content/plugin/wp-modiftitle/js

Fichier principal

Le fichier principal de votre plugin devra contenir les entêtes suivantes :

Notre classe principale

On va ensuite créer la classe principale de notre plugin et déclarer une nouvelle instance de cette classe :

Les actions

Les actions sont des fonctions qui seront appelées lors d’événements particuliers. Par exemple, grâce à ces fonctions, on pourra changer le titre de la page lors du chargement de la section head (tiens ça tombe bien, c’est à ça que sert notre plugin non ?).
La liste des actions disponibles se trouve ici : Actions WordPress

Ajouter une action

Pour ajouter une action, c’est très simple, il suffit d’appeler la fonction suivante :
add_action($tag, $function_to_add, $priority, $accepted_args );

Concernant les paramètres :
– $tag (string) est nom de l’action sur laquelle on veut se brancher
– $function_to_add est la fonction à appeler
Pour voir les paramètres en détail, c’est par ici : add_action

Donc nous, nous allons créer une nouvelle action :

Ainsi, lors du chargement de la section head, la fonction ‘modifyTitle’ (dont nous verrons le code plus tard) sera appelée.

Supprimer une action

Pour supprimer une action, c’est tout aussi simple (les paramètres sont identiques à la fonction ‘add_action’) :
remove_action( $tag, $function_to_remove, $priority, $accepted_args );

Les filtres

Les filtres jouent un rôle important également car ce sont grâce à eux que l’on va modifier le contenu du site.
On pourra par exemple ajouter du texte à la fin de chaque article, modifier la position de certains éléments, etc..
Pour voir la liste des filtres disponible, c’est par ici : Filtres WordPress

Ajouter un filtre

L’ajout de filtre se fait très simplement, il suffit d’appeler la fonction add_filter (encore une fois, les paramètres ne changent pas) :
add_filter($tag, $function_to_add, $priority, $accepted_args );

Pour notre plugin, nous n’utiliserons pas cette fonction.
Mais par exemple, pour ajouter « J’adore le SEO » à la fin de chaque article, il suffit de faire comme cela :

 

Le filtre à utiliser pour l’affichage des articles est ‘the_content’. On le branche alors à notre fonction addText :

 

Modification du Header

Pour ajouter des fichiers CSS ou JSS dans notre header, on aurait pu utiliser les actions, mais cela pose certains problèmes (fichiers dupliqués, etc..)
Mais WordPress nous fourni des fonctions toutes prêtes, alors autant ne pas s’en priver.

Javascript

Certaines bibliothèques sont fournies avec WordPress; il suffit alors d’appeler la fonction ‘wp_enqueue_script’ avec le nom de la bibliothèque pour l’inclure :

Si vous souhaitez inclure vos propres fichiers, rien de plus simple :

CSS

Pour charger vos fichiers CSS, WordPress a prévu la fonction ‘wp_enqueue_style’ :

 

Administration

Vous le savez sûrement déjà, mais l’espace d’administration joue un rôle clé puisqu’il vous permettra de régler différents paramètres.
WordPress nous fourni un mécanisme puissant pour stocker toutes ces valeurs : les options.

Déclaration des options

Vos options devront être uniques et déclarées en tant qu’attribut de votre classe :

La page d’administration

Concernant notre plugin, on veut affichée la liste des recherches Google qui ont mené vers notre site, avec le nombre d’occurence(s) et la date de recherche.
On va donc créer cette fonction qui va afficher les données:

 

Il va donc falloir appeler cette fonction. On va tout d’abord créer un nouvel onglet dans le menu réglage (Configuration). On appelle pour cela la fonction ‘add_options_pages’ :

A noter que la fonction qui sert à appeler la fonction ‘add_options_page’ doit se trouver à l’extérieur de notre classe principale.

On branche ensuite cette fonction afin qu’elle soit appelée lors du chargement du menu :

 

Base de données

On pourrait stocker les données dans les options, mais de un c’est moche, et de deux, les plugins ont généralement besoin de leur propre structure.
On préfère alors utiliser la base de données.

Installation de la base de données

Lors de l’installation du plugin, il va falloir créer nos tables. L’objet $wpdb permet de manipuler la base de données.
On écrit donc la fonction chargée de créer nos tables (dans notre cas, nous avons besoin que d’une seule table) :

Il suffit d’appeler cette méthode lors de l’installation du plugin. Cela se fait grâce à la fonction ‘register_activation_hook’ :

 

Désinstallation de la base de données

Il est utile de supprimer les tables crées lors de la désinstallation du plugin :/**

On appelle maintenant la bonne fonction :

Utilisation des données

Si vous avez lu ce tuto attentivement, vous avez remarqué que dans la méthode ‘displayPageAdmin’, nous utilisons ce code :

Nous allons maintenant l’expliquer (bien que ce soit tout simple) :
1) La méthode ‘prepare’ sert à protéger les requêtes
2) Comme son nom l’indique, la méthode ‘get_results’ sert à récupérer les résultats de la requêtes en paramètre

Nous allons ensuite créer la fonction qui va se charger d’insérer en base de données la requête tappée par le visiteur sur Google.
A chaque insertion en base, on met à jour l’option pour stocker l’expression qui a été la plus recherchée.

On appelle cette fonction à chaque chargement de page :

Ensuite, à chaque chargement de page, on met à jour le titre en fonction de l’option précédemment définies (dans la fonction insertKeyword).
On crée d’abord la fonction :

On appelle cette fonction à chaque chargement de page :

 

Conclusion

Ce que nous avons vu dans cet article représente une petite partie de toutes les possibilités offertes par WordPress.
Pour plus d’informations sur le sujet, vous pouvez consulter la Documentation officielle de WordPress