Comment développer un plugin WordPress

Comment développer un plugin WordPressWordPress est le CMS le plus utilisé dans le monde. Grâce à ses très nombreux plugins (extensions), il devient chaque jour de plus en plus populaire et sa part de marché continue de croître. Dans ce tutoriel nous allons voir comment développer un plugin.

Evidemment, un minimum de connaissance sur WordPress et PHP est nécessaire pour bien comprendre ce tutoriel.

Que fera ce plugin ?

La première étape dans le développement d'une extension pour WordPress est de déterminer les fonctionnalités que prendra en charge le plugin. Dans ce tutoriel, nous allons créer un plugin simple, qui aura pour but de prendre en charge certaines optimisations afin d'améliorer les performances du site...

Enlever les métas données inutiles :

  • “rsd_link” – Lien Really Simple Discovery
  • “wlwmanifest_link” – Lien pour publication avec Windows Live Writer
  • “wp_generator” – Numéro de version de WordPress

Enlever les filtres inutiles :

  • “wptexturize” – Guillemets courbes
  • “wp_filter_kses” – HTML dans le profil utilisateur

SEO :

  • Insérer les mots clés de l'articles dans la balise <head> en tant que 'keywords'
  • Insérer l'extrait de l'article dans la balise <head> en tant que description

Pour commencer

Dans le dossier des plugins (wp-content/plugins), il faut créer un dossier que nous allons nommer "simple-optimisation". Ensuite, dans ce nouveau dossier, nous allons créer deux fichiers. Le premier d'entre eux, main.php, accueillera le code du plugin et le second, readme.txt, contiendra la description de l'extension.

Dans le fichier main.php, coller le code ci-dessous.

Ajouter des fonctionnalités

La première des fonctionnalités que nous allons implémenter est la plus simple. Par défaut, WordPress ajoute plusieurs métas données dans la section d'entête (balise <head>) du site. Mais elles n'ont aucun intérêt. Nous allons donc empêcher WordPress de les ajouter. A chaque fois que WordPress effectue une action il expose un filtre ou une action qu'il est possible de manipuler. Dans notre cas, nous voulons supprimer ces actions qui ajoute les métas données.

Pour cela, nous allons utiliser une simple fonction appelée “remove_action(‘action’,'function’)”. Cette fonction enlèvera la fonction spécifiée en second paramètre :

Le même principe peut être appliquer  aux filtres :

Maintenant que nous avons légèrement optimisé le site, nous allons passer à l'étape suivante.

SEO

Evidemment, ici, nous allons faire quelque chose de très basique 😉

Nous allons récupérer d'une part les mots clés de l'article (s'il en possède), puis l'extrait, afin de renseigner les balises Keywords et Description de la section d'entête (balise <head>).

Pour obtenir la liste des mots clés il suffira d'utiliser la fonction “wp_get_post_tags()”.

Commençons par créer dans notre plugin une fonction "tags_to_keywords". Dans cette fonction nous nous assurerons que la page affichée est soit un article soit une page :

Ensuite, dans une boucle, nous allons créer une chaîne qui contiendra la liste des mots clés présents dans le tableau $tags.

La dernière chose que nous allons faire est d'attacher la fonction "tags_to_keywords" à l'action wp_head (cette fonction doit être présente dans le fichier header.php)

Ensuite, en nous basant sur la même méthode, nous allons renseigner la méta donnée de description avec l'extrait de l'article.

Pour finir nous allons également optimiser la base de données.

Optimisation de la base de données

Pour optimiser les tables de la base de données nous allons créer une fonction "optimize_database".

Nous allons utiliser la variable globale "$wpdb" qui permet d'interagir avec la base de données de WordPress. Cette variable globale est une instanciation de la classe utilisée par WordPress pour communiquer avec la base de données.

La fonction get_results va nous permettre, avec les paramètres adéquats, d'obtenir la liste des tables présentes dans la base de données. Il ne restera plus qu'à parcourir ce tableau pour optimiser chacune des ces tables.

Pour que cette optimisation des tables puisse être effectuée de manière récurrente (par exemple, une fois par jour) il ne nous reste plus qu'à ajouter une fonction qui sera accrochée au crochet d'activation du plugin. Nous veillerons également à supprimer l'exécution de cette fonction lors de la désactivation du plugin par le biais du hook de désactivation.

Renseigner le fichier readme

Conclusion

Avec ce tutoriel vous avez appris comment créé un plugin pour WordPress. Au travers des différentes étapes, vous avez pris connaissance des filtres, des actions, de la classe permettant d'interagir avec la base de données de WordPress.

Source : http://net.tutsplus.com/tutorials/wordpress/your-first-wordpress-plugin-simple-optimization/