Comment ajouter des astuces sur votre site ? ou « functions.php ? plugin ? mu-plugin ? »

Comment ajouter des astuces sur votre site ? ou « functions.php ? plugin ? mu-plugin ? »

La question est récurrente, je la vois très souvent dans les commentaires de ces astuces/tutos, que ce soit sur un site français comme geekpress.fr ou même américain.
La réponse habituelle, rapide et sans explications – et je la donne aussi, mea culpa – est :
« Mettez ça dans functions.php de votre thème« …
Je demande pardon à tous les fichiers functions.php martyrisés de notre faute, nous n’aurions pas dû vous solliciter autant.

Pourquoi se poser la question ?

Car régulièrement vous apportez des modifications à votre site en y ajoutant comme beaucoup de monde des petites fonctionnalités comme un shortcode, un widget etc

Toutes ces choses pour lesquelles vous voudriez éviter d’installer un plugin. En plus il suffit de coller quelques lignes de code dans votre fichier functions.php, pourquoi ne pas le faire !?

Le problème avec cette technique d’ajout, c’est que tous ces petits bouts de code s’accumulent encore et encore et qu’on fini par perdre le fil de ce qu’on a ajouté. « A quoi sert ça déjà ?« , « Et ça je le garde ? »

L’autre problème arrive lors du changement de thème, il vous faudra replonger dans le fichier functions.php et essayer de retrouver les bouts de code que vous aviez ajouté l’an passé pour les ajouter de nouveau dans le fichier functions.php du nouveau thème.

Rageant non ? Je vous propose d’autres solutions.

www/wp-content/themes/
www/wp-content/themes/

Les vrais solutions

En réalité il existe 3 solutions, 3 endroits où vous pouvez mettre les astuces et tutoriels. Pour choisir, je vais vous aider à vous poser les bonnes questions.

D’abord, précisons ce qu’est une astuce, ses différences avec un tutoriel et un plugin.

Astuce [n.f.]: Snippet (morceau) de code, généralement 2 fonctions et/ou 2 hooks maximum, moins de 30 lignes de code (sans commentaires).

Tutoriel [n.m.]: Pavé de code, généralement plus de 50 lignes de codes, plus complexe et plus long donc qu’une astuce.

Plugin [n.m.]: Autoroute de code, généralement plus de 100 lignes de code, parfois séparé en plusieurs fichiers, encore plus complexe.

Et l’exception qui confirme la règle :

Une astuce et un tutoriel peuvent tous les 2 être des plugins. Et un plugin peut faire 1 ligne de code. #toutçapourça

Questions pour un champion

Voici les 2 questions à se poser sous forme de diagramme :

Se poser les bonnes questions
Se poser les bonnes questions (https://www.circuitlab.com/)

(Reprise des questions au format texte pour le SEO)
Question 1 : L’astuce doit-elle persister si je change de thème ?

  • Si non : Cette astuce est à placer dans functions.php du thème.
  • Si oui,

Question 2 : Cette astuce peut-elle être désactivée sans gêner le site niveau fonctionnel ou visuel ?

  • Si non : Créez un mu-plugin pour cette astuce.
  • Si oui : Créez un plugin pour cette astuce

Je vous donne maintenant 3 mini tutos pour vous aider à insérer les astuces sur votre site :

Comment placer l’astuce dans « functions.php » ?

Prenons l’exemple du thème « TwentyThirteen » :

  1. Créez un thème enfant en suivant ce tutoriel Créer des thèmes enfants (child themes) avec WordPress
  2. Connectez vous sur votre gestionnaire de fichier en sFTP,
  3. Naviguez pour trouver « wp-content/themes/twentythirteen-child/functions.php« ,
  4. Téléchargez le, éditez le,
  5. Allez en fin de fichier, supprimez « ?> », si si supprimez moi ça, vous n’en avez pas besoin, cela évitera des erreurs de ligne vides ou blanc en fin de fichier,
  6. Copiez/collez l’astuce que vous avez trouvé en fin de fichier,
  7. Sauvegardez, téléversez le,
  8. L’astuce est activée.
Astuce "Guest Preview" dans functions.php
Astuce « Guest Preview » dans functions.php

Comment créer un plugin simplement ?

Créer un plugin, ces mots vous font peur ? Vous n’êtes ni codeur ni « programmateur » ? Pas de soucis, c’est simple !

  1. Créez un fichier « astuce_pour_faire_ceci.php » et éditez le,
  2. Ajoutez en début de fichier ce code que vous adapterez:
  3. Connectez vous sur votre gestionnaire de fichier en sFTP,
  4. Naviguez pour trouver « wp-content/plugins/« ,
  5. Vous pouvez créer un dossier « /astuces/ » pour bien vous organiser,
  6. Copiez/collez l’astuce que vous avez trouvé en fin de fichier,
  7. Téléversez le fichier,
  8. Le plugin est créé, activez le via la page habituelle des plugins.
Entête du plugin "Post Views Count"
Entête du plugin « Post Views Count »

Comment créer un mu-plugin ?

C’est quoi un mu-plugin ? Vous le savez ? Non, et bien je vous explique :
Un mu plugin est un plugin « à utiliser », un Must Use d’où le « mu ». Ces plugins sont la plupart du temps des fichiers seuls et se trouvent dans « /wp-content/mu-plugins« . Ce dossier n’existe pas à la création de votre site, à vous de le créer.

Ces fichiers seront les premiers à être inclus, avant même les plugins « network » (multisite) et avant les plugins « normaux ». Ces plugins ne peuvent pas être désactivés, vous les retrouverez dans la page des plugins mais aucun lien d’actions possible, et s’il vous plait, n’ajoutez pas de plugins permettant de les désactiver, c’est une hérésie.

Le fait de mettre une astuce ou un plugin en mu-plugins au lieu de plugin risque parfois de ne pas fonctionner car les constantes et posts types de WordPress ne sont pas encore chargés. Si vous comptiez ajouter du code « directement » dans le fichier et non via un hook, car via un hook ça fonctionne très bien ;)

Aussi certains vous diront « vous ne pouvez pas mettre un plugin complet dans mu-plugins » ce qui est totalement faux, si on sait coder en PHP, alors on sait inclure un plugin complet. Néanmoins et encore une fois, il se peut fortement qu’un plugin ne fasse pas bien son travail s’il se retrouve dans le dossier /mu-plugins.
Lien vers le codex : http://codex.wordpress.org/Must_Use_Plugins

Puis :

  1. Créez un fichier « astuce_pour_faire_ceci.php » et éditez le,
  2. Ajoutez en début de fichier ce code que vous adapterez:
  3. Connectez vous sur votre gestionnaire de fichier en sFTP,
  4. Naviguez pour trouver « wp-content/mu-plugins/« , ou créez le s’il n’existe pas,
  5. Ne créez pas de sous-dossier cette fois, seuls les fichiers à la racine seront ajoutés,
  6. Copiez/collez l’astuce que vous avez trouvé en fin de fichier,
  7. Téléversez le fichier,
  8. Le mu-plugin est créé et déjà actif.
Dossier "mu-plugins"
Dossier « mu-plugins »

J’espère que ce tutoriel vous aura éclairé sur le lieu où placer vos astuces et aussi sur les mu-plugins.
Je vous laisser déplacer vos astuces avant de revenir commenter ? ;)

Lire la suite

Vous aimez ? Partagez !


Réagir à cet article

120 caractères maximum