La pensée WordPress selon Julio

"Plugin or not plugin ?" -  C'est quoi cette question ?

Je vais vous parler de la pensée WordPress, quoi ? vous êtes déjà partis ? Restez ça fait pas mal !

La pensée WordPress, c'est "Pensez WordPress !", dois-je donc penser plugin ou WordPress. "C'est la même chose car un plugin est un plugin WordPress ?" me direz-vous ... "FAUX !" ®N.T.

 
 La pensée WordPress selon Julio think WordPress2

 

Alors, plugin ?

Alors d'abord "non", ne pensez pas plugin. Evitez de vous ruer sur le repository officiel, sur codecanyon (attention lien super pas affilié, ne cliquez dessus que très tard dans la nuit, genre vers 4h18), sur vos sites WordPress francophones favoris, sur google ou tout autre plateforme de plugins connue. Pensez WordPress !

Ca veut dire quoi concrètement, ça veut dire qu'il est possible que WordPress sache déjà faire ce que vous voulez faire sans devoir ajouter un plugin de la mort qui pompe 50% de ressources en plus. Et même souvent le plugin fera un ptit truc de moins que vous attendiez, par contre il fera un max de trucs inutiles mais pas le choix, le plugin fait aussi un peu de ce que vous voulez.

 

Comment on fait ?

Ha, pressé(e) de savoir ? Prenons quelques exemples concrets que j'ai rencontré, les pseudos sont fictifs, la plupart des questions contiennent des mots clés comme "bon plugin" ou "le meilleur plugin", ce qui bien évidemment reflète aussi cette pensée non réfléchie de recherche, je vous en parle après.

- Jean-Albert (débutant WP): "Quelqu'un connait-il un bon plugin (!) pour intégrer un widget qui affiche le contenu d'un flux RSS ?"
- Julio (moi): "Apparence > Widget > Flux RSS"
- Jean-Albert: "Super, j'avais même pas pensé à regarder là, merci !"

Oui ça existe déjà dans le core, mais la personne a réfléchi de cette façon:
"J'ai besoin d'afficher le contenu d'un flux RSS en widget, quel plugin fait ça ?"

au lieu de:
"J'ai besoin d'afficher le contenu d'un flux RSS en widget, WordPress fait-il ça ?"

C'est ça la pensée WordPress !

 
Autre exemple de demande posée à un groupe d'utilisateur WordPress de tout horizons, 150 personnes peuvent répondre, des pros et des pas pros :

- Marie-Beatrice (débutante WP): "Bonjour je cherche un plugin pour faire un trombinoscope sur une page."
- Stéphanie B. (pro WP): "Tu peux installer BuddyPress puis détourner tel module (je ne me souviens pas du détail) pour faire afficher les photos, après il y a peut-être un plugin BuddyPress qui le fait" etc
- Charles-Grégoire (pro WP): "Non je n'en connais pas, il faut créer un Custom Post Type puis ajouter des Custom Fields + un plugin d'avatars puis créer un shortcode pour afficher dans une page le trombi" etc
- Julio (moi): "WordPress intègre déjà une table contenant les utilisateurs, pas besoin d'un CPT. Le backend et les API permettent donc d'ajouter facilement des membres. Un plugin d'avatar ? Gravatar.com est là pour ça. Un shortcode ? Non un template de page spéciale. Si vous désirez ne pas mélanger les vrais membres du site (admins/auteurs...) avec ceux du trombi, ajoutez un role spécifique puisque WordPress le permet aussi."

Ha, Stéphanie et Grégoire, pour être pro WP il faut d'abord penser WordPress et pas plugin ou réinventer la roue !

 
Exemple du "meilleur plugin" :

- Rododolphe (débutant WP): "Quel est le meilleur plugin pour faire une galerie de photos simple sans trop d'options dans mes articles ?"
- Marcecel (pro WP): "NextGen Gallery"
- Julio (moi): "[ gallery ]"

Oula Marcecel ! As-tu au moins écouté la demande ou bien tu t'es arrêté à 'galerie' ? La personne cherche une façon simple d'afficher des photos dans un article, léger si possible. Ne lui propose pas NextGen !!

 
Allez un dernier pour la route :

- Daniel Roch (pro WP): "Quelqu'un a un plugin WordPress pour héberger et afficher sur son serveur ses propres vidéos ? #lfWPp"
- Julio (moi): "core.trac.wordpress.org/attachment/tic… 3.6 :D En attendant tu peux c/c le code en vert dans ton functions.php avec !function_exists() ;)"

Daniel a eu raison de chercher un plugin car WordPress ne propose pas ça nativement, donc il faut développer les shortcodes. MAIS avant ça, j'ai pensé aux développeurs de WordPress et aux autres utilisateurs. Si j'ai ce besoin, alors d'autres l'ont surement eu aussi. ps : la discussion Twitter

Le trac est le bon endroit pour chercher si le bug, la demande, le manque est déjà connu de la part des équipes de dev, ici, j'ai trouvé pile le besoin, merci WordPress.

Encore une fois, pensez WordPress. De plus le codex WordPress contient cette information. Bon ok, il faut être familier avec le codex un minimum et l'anglais aussi, voici comment on trouve la page.

Accueil > Browse All > "Display pages starting at:" = "Gallery" > premier lien "Gallery Shortcode" (cliquez 2 fois, le premier clic relance la recherche sur le terme complet)

 
 La pensée WordPress selon Julio codex wordpress org

 

Comment moi je pense WordPress...

Voici comment je pense WordPress. Quand j'ai un problème à résoudre ou une demande de modification de comportement dans WordPress :

  • Je cherche d'abord si la fonctionnalité est évidente (comme l'exemple du widget RSS),
  • ensuite j'examine le problème, la demande, j'en sors des informations comme :
    • suis-je en front-end ? back-end ? les 2 ?
    • cela concerne t-il tous les rôles ? Faut-il être connecté ?
    • le thème joue t-il un rôle dans ce problème/demande ?
    • un plugin existant ne court circuite-t-il pas WordPress ?
    • etc
  • Puis je cherche un plugin fait ça quand je pense qu'un plugin pourrait exister pour régler ce problème, gérer cette demande, sinon ...
  • ... je cherche le hook qui pourrait m'aider directement dans le core (ou avec wpseek aussi) car si j'ai réuni assez d'informations, je sais ce que je cherche donc je sais où je le cherche.
  • Si un hook convenable existe, je peux commencer à résoudre le problème, traiter la demande. Cela devient ensuite une astuce ou un plugin.
  • Si il n'y a pas de hook correct, j'en prends un plus général, voire "init" ou carrément "muplugins_loaded" (tout premier hook WordPress)

Vous voyez, je commence par une réflexion WordPress avant de penser plugin ou développement.

 

Moralité ?

Il est vrai que quand on ne touche pas au code, il va nous falloir un plugin. Mais vous vous devez de connaitre votre CMS favoris pour vous rendre compte que telle ou telle fonctionnalité existe déjà ou pas et ensuite chercher à l'exploiter en priorité, avant de se lancer dans la recherche d'un plugin lourd ou vulnérable à des failles de sécurité, préférez aussi les astuces plus légères et souvent moins gourmandes, je poste régulièrement mes astuces chez GeekPress.fr.

 
Et vous, pensez-vous WordPress ?

 

 La pensée WordPress selon Julio julio potier

A propos de l’auteur

Consultant en Sécurité & Expert WordPress, je développe et sécurise du contenu web tous les jours. La création de plugins WordPress fait partie de mon quotidien. Mon livre de chevet ? Le codex WordPress bien sûr !

24 commentaires

  1. Hello, je suis globalement assez d'accord avec l'idée générale de cet article "penser WordPress", mais je dois cependant émettre un bémol à certains propos qui ont tendance à diaboliser les plugins: "... sans devoir ajouter un plugin de la mort qui pompe 50% de ressources en plus... "

    Un plugin bien créé ne pompe pas de ressource supplémentaire. D'ailleurs un thème pompe bien plus qu'un plugin dans 90% des cas.

    Je suis d'accord pour dire qu'il faut toujours chercher une solution existante avant de se lancer dans du dev, mais attention à ne pas prendre les plugins pour des extensions peu fiables, lourdes, non sécurisées etc... les plugins font partie de la pensée WordPress et ne doivent pas être assimilés à des méthodes à bannir.

  2. Merci Julio, pour cet excellent article qui laisse à penser...

    Tout comme Rémi, je suis en accord avec une partie de l'article et les exemples choisis sont vraiment parlants, sic!

    Mais tout le monde n'est pas développeur ou ne maîtrise pas le php, loin s'en faut, ainsi beaucoup se tourneront vers des plugins, là ou des fonctions WP existent déjà... encore faut-il savoir les utliser ;)

  3. C'est vrai, en fait je pensais aux plugins proposés dans les réponses que j'ai rencontré, comme "NextGen" pour une simple galerie ou "BuddyPress" pour faire une page avec des avatars.
    Même si BP ou NG sont bien codés, ils sont subjectivement lourds par rapport au besoin.
    Désolé si j'ai fait diaboliser les plugins, loin de moi l'idée, j'en crée et j'en vends, je serais bien bête ^^
    Merci à toi Rémi, j'ai pensé à toi en écrivant je me disais "réutiliser l'existant !" #wordcamp ;)

  4. Tout à fait, dans ce cas, passez un tweet avec le hashtag #lfWPh et #lfWPp pour obtenir de l'aide ou posez une question chez geekpress :D
    "lfWP" = "Looking For WordPress puis "h" = HELP, "p" = Plugin, il existe "t" pour Thème et "j" pour "job" ;)

  5. On est d'accord ! J'ai également pensé au Wordcamp en lisant l'article ! ;-) Mais c'est clair qu'utiliser un plugin pour une pagination... y'a plus simple !

  6. Désormais, dès que pointera une interrogation, je me demanderai "Que ferait Julio Potier à ma place ?", je penserai Julio Potier ! d:-)

  7. mouais... bon, sur le fond, je suis d'accord, même que j'avais fait un billet sur le sujet.
    Alors, ton exposé, il est bien, il est beau. Mais il ne tiens pas la route.
    Pourquoi ? Parce que WordPress, son code, tout ça, l'utilisateur final, il s'en tape !
    Il veut monter dans caisse, mettre le contact, et en voiture.
    Le côté, code, hack, hook, machin, tout ça, c'est du chinois pour lui.
    Et je le comprends.

    De plus, t'es marrant à tirer sur les plugins, mais qu'est-ce qui fait la force de wp pour le grand public ? Le code ? non. Les extensions. Point.

    Que toi, tu fasse joujou avec les fonctions natives de wp, je le comprends.
    Que Madame Michu n'aie pas envie de se faire chier avec le code, tu devrais aussi le comprendre.
    Chacun son wp mon ami, c'est ce qui fait la beauté de la chose.
    Mme Michu, elle utilise le même outil que toi, mais pas de la même façon.
    Et quoi, tas façon serait plus que la sienne ? Non, tu as tes besoins, elle, les siens.

    Et peut-être qu'elle n'a pas envie de payer 700 euros pour un bout de code (;

  8. Déjà le billet n'est pas destiné à un seul profil mais à tous.
    Si tu es développeur, ça t'invite à penser code/hook et pas de suite "plugin". Même les famous peuvent parfois être trop lourd pour le besoin réel ou contenir des failles (voir W3TC).
    Si tu es utilisateur final/blogueur du dimanche, ça va te rappeler que tu peux aussi chercher d'abord des astuces puis ensuite des plugins.
    Le profil développeur a certes ici plus à appendre que Mme Michu (tu lui fera la bise pour moi).
    Rappelons qu'un plugin est une sorte de suite logique d'astuces mises tout à bout, et qu'une astuce est un hook de WordPress correctement utilisé, rien de plus.

    Donc en fait je ne tire pas sur les plugins, je dis que mettre "NextGen" quand on a besoin du shortcode "[ gallery ]" ou mettre "BuddyPress" quand on veut afficher les avatars c'est trop lourd.
    Quand le mec a besoin d'une caisse commune genre "Clio", il ne veut pas avoir à conduire une "BMW", ni en payer le prix (une BMW c'est de la Clio premium ? allez why not...) Par contre si il pouvait lui meme modifier la couleur de sa clio sans passer par le concessionnaire, pourquoi pas !

    Cet article vise donc Mme Michu, celle qui a peut être envie un jour de se dire "et pourquoi pas moi ? je suis pas la dernière des connes, je vais regarder comment ça marche un hook, ça fait 10 ans que je fais du web, 3/4 ans de WordPress en blogueuse culinaire et je suis pas capable de connaitre comment fonctionne un hook ? honte à moi ! je m'y mets de suite."

    Je comprends aussi sa soeur, Mme Michu qui elle ne veut pas s'embêter avec ça par manque de temps ou de confiance en elle, la peur d'échouer en arrête plus d'une. Mais je l'invite à tweeter avec les hashtags cités dans mon autre commentaire, elle trouvera des infos plus précises et qui colle au plus proche de son besoin. Je l'invite à s'inscrire à des groupes d'une 150aine de personne qui peuvent l'aiguiller, un groupe contenant aussi bien des débutants, des blogueurs, des développeurs, des agences etc

    Chacun son WP bien sûr. Ce que ma façon a de plus que la sienne ? Je t'invite à relire l'article, j'invite à une façon de (re)penser les besoins de codes/modifications.

    Et pour finir "payer 700 euros pour un bout de code (;" j'appelle ça du dénigrement. Pour info du code coute 0€, le temps passé à chercher/coder/tester est facturé.

    Allez je retourne dans ma cave ;)

  9. Ouais, ce que tu dis se défend, on est d'accord.
    Mais je suis désolé, y'a des tas de gens, le code, ils s'en tapent.
    Tout comme y'a des gens qui pensent que les fausses recherches, ça coute pas 700 euros...

    Les deux points de vues se défendent.
    Et dans l'histoire, y'en a pas un qui a plus raison que l'autre.

  10. Loin de moi l'idée ou l'envie de tirer sur les plug-in ; ils permettent de donner une très grande souplesse à WordPress, et en tant que débutant je trouve ça presque indispensable.

    Mais lorsque l'on cherche à optimiser son site, un rapide passage sur GTmetrix ou page speed insights de google, nous rappelle vite à l'ordre... Chaque plug-in alourdit un peu plus le code, rajoute des scripts, augmente le nombre de requêtes...

    Pour moi les plug-in sont une plus value indispensable à wordpress, mais encore faut-il s'en servir lorsque cela est nécessaire. La réflexion globale menée dans cet article relève du bon sens même si la plupart les utilisateurs préfèrent choisir le voie de la facilité (dans un premier temps du moins)...

    Après il ne faut oublier les problèmes de mises à jour non compatibles des plug-in, ceux qui font un carnage d'erreur 404 et 503 (merci GlobalTranslator), ceux qui génèrent du HTML invalide W3C...

    J'ai plus rien à ajouter :)
    Bonne journée à tous et restez zen, GuillaumeB

  11. "les fausses recherches, ça coute pas 700 euros" arrête de dénigrer en modifiant la réalité, déjà c'est hors sujet, mais en plus c'est du mensonge gratuit.

  12. Je suis d'accord avec Stéphane, le public novice s'en tape, ou même les clients finaux dans certains cas, qui s'imaginent qu'en te filant un cahier des charges à la fin de ton boulot que tu vas lui coder un truc en deux deux... (on se comprend Julio).

    C'est tellement facile sur wp que les gens s'imaginent que c'est rapide de modifier du code.

    En revanche là où je rejoins Julio, c'est quand le blogueur pro, ou le blogueur novice (je suis sans prétentions *^^*) va lui vouloir alléger son site en supprimant des bouts de code qu'il va pouvoir remplacer directement par une valeur fixe, comme un blog_tittle ou autre dans un fichier header.php et dans ce cas on se rend compte aussi qui vaut mieux par exemple, pour passer son blog en Dofollow, appliquer une fonction à la mano dans le fichier adéquat plutôt que de venir activer un plugin (même si c'est plus rapide).

    Donc pourquoi ne pas tout de suite chercher la solution qui viendra cimenter son blog.

    Récemment je faisais part à Julio de mon intention de dégager un plugin trop gourmand, alors je l'ai fait et je compte remplacer par du code afin de retrouver la fonction que j'appréciais. Voilà MA finalité de la chose.

  13. Merci Julio ! J'y penserais maintenant à deux fois avant de me jeter sur un plugin.
    Et est-ce que je pense WordPress ? Et bien, pas la nuit je dois dire...

  14. Qué mensonge gratuit ? Qué dénigrement ? J'ai le droit de ne pas être d'accord sur un point, non ?
    Ok, c'est HS, et capilo tracté, je te l'accorde.

  15. Bah je vois bien Mme Michu, qui déjà ne comprends rien à Twitter, venir taper #jbdasWPpmt > J'ai besoin d'aide WordPress pour mon thème ! ^^

  16. Je rejoins Guillaume sur son analyse. En même temps, un codex en français... ça serait pas du luxe !

  17. Aaaah, ca c'est de l'article et du lourd.
    En réalité, à la base, je suis le type décrit par Julio, une fonction, 1 plugin. Ah bah oui, mais alors ca gonfle, gonfle gonfle, au point que le site se met à ramer parce qu'il a des requetes sans fin (et je ne parle pas du codage des plugins, j'en serais bien incapable).
    Et puis on regarde de plus près le système de base:
    Pour une galerie photo, NGGallery, ok, mais finalement, j'en fais quoi? un peu d'affichage, une option de lightbox, j'ai donc une usine à gaz pour écraser une mouche... Allez zou,on degage ce plugin et on le remplace par la galerie intégrée de WP, un petit plugin léger de lightbox par-dessus pour retrouver l'expérience utilisateur souhaitée au départ, et ca va bien (ca existe pas en natif par hasard? j'ai pas trouvé pour le moment...)
    J'ai d'autres exemples bien sur, je ne détaillerai pas.

    Bien sur, le novice, la Mme MICHU, elle a pas envie de se plonger dans le coeur du moteur, comme dans sa bagnole, tant que ca marche, c'est bon, si ca marche pas, on refile au garagiste, elle a raison, elle ne sait pas faire.

    En revanche, là où Julio a raison, c'est que, meme nulle en méca, elle n'est pas dispensée de vérifier que, si sa bagnole ne démarre pas, c'est p-e que la clé n'est pas dans le contact.

    c'est pour ça que, même peu expérimenté (voire totalement novice) en dev, je pense qu'il est indispensable de vérifier que la fonction qu'on veut mettre en place n'existe pas déja en natif. Et souvent, c'est sous nos yeux que ca se trouve.
    Et dans ce cas-là, aller chercher un plugin, c'est de la paresse intellectuelle non constructive, alors que la vraie paresse serait bien de voir si on peu s'éviter une manip de trop en mettant en oeuvre ce qui existe déja!

  18. Hello merci de commenter
    Pour la lightbox WordPress a déjà sa propre ThickBox en natif, http://codex.wordpress.org/ThickBox ;)
    Comment trouver cette page ? http://codex.wordpress.org/ puis en bas "liste alphabetique", clic sur "t" et tu as "Thickbox" encore faut-il connaitre WordPress et savoir qu'il a une thickbox, vous savez, celle qui pop dans l'admin ;)

  19. Ce qe trouve super dans wordpress, c'est qu'on peut évoluer progressivement.
    D'abord on met plein de plugins pour faire plein de choses. Ensuite, on lit un peu et on s'aperçoit qu'on peut faire plus simple et plus efficace. Si on a un peu développé dans sa vie, il suffit d'essayer. Quelques codes recopiés dans function php, un petit peu de css et c'est l'extase devant son oeuvre à soi tout seul.
    Franchement, ce plugin pour se connecter à Facebook, avec 10 lignes de codes j'obtiens ce que je veux ! Et là on part à la recherche des hooks, et on laisse dévorer son "temps libre". On écrit son plugin, qui devient aussi lourd que les plugins des autres, mais c'est mon mien à moi. Et quand quelqu'un comme Julio nous rapelle qu'il y a plein de ressources dans wordpress qui peuvent simplifier (et sécuriser) on ne se vexe pas, on corrige, parce que le plaisir, il est dans l'amélioration continue de ce qu'on fait, et parce que c'est grâce aux échanges qu'on ne cesse d'améliorer.
    En bref, wordpress ce n'est pas fromage plugins ou dessert hooks, c'est les deux. Certains seront rassasiés au fromage, d'autres auront toujours besoin de plus de dessert.
    Désolé de devoir vous quitter mais faut que j'ajoute la thickbox à mon formulaire.

  20. Faut que je mette à jour mon lecteur de RSS de ma boîte mail qui me signale globalement rien :/ : bel exemple d'utilisation de ressources pour rien.

    ~#1 Excellente mise en perspective que cet article. En revanche, peut-être un tout petit reproche : il n'est pas nécessairement applicable à tous. @julio ta façon de voir les choses est directement liée à ton niveau technique. Or tu es expert donc par définition tu n'agis pas vraiment comme tout le monde.
    ~#2 plugin ou pas, on s'en tamponne! L'essentiel est l'efficacité. Est-ce que ce code me fait gagner du temps? de la perf? de la sécurité? tout en même temps... Et il faut faire des compromis parce qu'avec du plugin gratuit ou une snippet on n'a pas toujours le nec plus ultra, rarement même. Même chose avec les plugins payants. Pas de règle. C'est pour ça que rien ne remplace un pro parce que tout dépend de l'installation et il faut une combinaison de ressources. Parfois un plugin sera bien mieux indiqué que tell snippet, parfois le contraire parfois, comme tu le rappelles, il suffira de connaître son interface. Pas de règle.

    Cela dit j’adhère totalement à ta méthode. :]

    ~#3 Petite réaction aux commentaires: le client a pas être "intelligent" dans le sens connaisseur. c'est toujours mieux pour lui mais si ce n'est pas le cas ce n'est pas une raison pour lui donner de la bouze. Donc à nous de peaufiner nos plugins, de bien orienter sur le choix des outils, des dév à faire. (Oui je suis sûrement bien naïf ^^).

  21. Moi, ce que j'aime avec Julio, c'est que ces articles provoquent toujours des commentaires ;-) on n' a pas le temps de s'ennuyer !

  22. christophebenoit

    De mon côté je pars du principe suivant :
    "Qu'est ce qui sera le plus facilement maintenable dans le budget que j'ai ?" Suivant le profil de site et le type de client, ce sera du dev sur mesure ou du plugin.

    Réinventer la roue, non merci mais on ne transige pas avec les performance ou la pérennité du site.
    Cas par cas donc.

  23. Quand je lis vos commentaires, je me dis que j'ai beaucoup de chance de ne pas travailler avec la fameuse Mme Michu :)

    Concernant le cas pratique du trombinoscope, la solution CPT est la meilleure solution à mes yeux. Le nombre de clients qui se plaigne du mélange des genres adhérents site/rédacteurs BO est très révélateur !

    Par contre, quand je vous entend vouloir remplacer un plugin de pagination par une fonction PHP dans le thème sous prétexte de la performance, ca me laisse perplexe.

    Faire de la micro-optimisation au dépend de la maintenabilité ça me dépasse...

  24. Même pensé. WordPress for ever ! : )