Le blog de Nukleo

WordPress : Créer un plugin pour rendre functions.php indépendant du thème

5 octobre 2011 dans WordPress |

Le fichier functions.php permet de modifier et/ou ajouter des fonctionnalités à WordPress mais si vous changez de thème, vous perdez ces modifications. On pourrait se contenter de copier/coller ces changements dans le nouveau thème, ou on pourrait les transférer dans un plugin afin de les conserver quel que soit le thème.

Faut-il tout transférer ?

La réponse à cette question simple l’est tout aussi : non. Pour savoir ce qu’il faut transférer il faut faire une distinction entre les fonctions qui impactent le contenu et celles qui impactent le design. Celles qui ont un impact sur le contenu ont tout intérêt à être déplacées dans un (ou plusieurs) plugins alors que les autres servent uniquement le design ou layout du site et doivent rester dans le fichier functions.php du thème.

Que faut-il (ou peut-on) transférer ?

Dès l’instant où le fait de ne plus avoir une fonction va poser un problème il serait judicieux qu’elle se retrouve dans le plugin, par exemple :

  • Les shortcodes
  • Les filtrages de contenu
  • Les custom post types
  • Les custom taxonomies
  • Les ajouts à l’admin de WordPress

Que faut-il conserver dans functions.php ?

Si une fonction n’a qu’un impact visuel, notamment sur le design et la structure du site, dans ce cas il appartient directement au thème et doit par conséquent rester dans functions.php – par exemple :

  • Les menus
  • Les sidebars
  • La pagination

Créer le plugin de fonctionnalités

La création d’un plugin est très simple et si vous savez ajouter des fonctions à functions.php alors vous pouvez créer votre plugin !

Première étape

Créez un repertoire qui porte le nom de votre plugin en n’utilisant que des lettres non accentuées, des chiffres et des tirets. Pour cette article on partira du principe que le nom du plugin est monsite-fonctions.

Dans ce répertoire créez un fichier PHP qui porte exactement le même nom : monsite-fonctions.php.

Deuxième étape

Ajoutez les commentaires en début de fichier qui permettront à WordPress de voir qu’il s’agit bien d’un plugin :

/*
Plugin Name: Fonctions de monsite
Plugin URI: http://www.monsite.com/
Description: Déplace les fonctionnalités qui impactent le contenu dans un plugin
Author: Nom Prénom
Version: 0.1
Author URI: http://www.monsite.com/
*/

Troisième étape

Il n’y a plus qu’a insérer les fonctions dans ce fichier, puis activer le plugin dans l’administration de WordPress et le tour est joué !

Conclusion

Comme vous l’avez vu il est très simple de créer un plugin rendant les fonctions clés d’un site sous WordPress indépendantes de son thème. Cela peut être également très utile dans le cas où votre client veut pouvoir changer de thème sans pour autant perdre ses fonctions. Vous pouvez également vous constituer une bibliothèque de plugins réutilisables dans d’autres thèmes.

Pour en savoir plus sur la création de plugins, je vous invite à consulter le codex de WordPress (en anglais) : writing a plugin

Happy coding !

Mots-clés : , , ,

Vous avez aimé l'article ? Partagez-le : 

Les commentaires sont fermés.