2. Sommaire
Faisons connaissance
Comment chercher pour mieux trouver ?
04
1.1 Qui suis-je ?
1.2 WordPress en 2 mots
1.3 Thème et plugin
01
Si je veux
02
Bilan
05
Quelques extensions utiles
03
4. Qui suis-je ?
• Chef de projet Web depuis 2009
• Consultant WebPerf
• Référent WordPress
@lpointet
5. WordPress en 2 mots
• Moteur de blog ? CMS ?
• Multi-facettes : e-commerce, réseau social, portfolio...
• + 65 millions de sites dans le monde (~10 à 15%)
6. Thème et plugin
• Thème = dossier
– Fichiers PHP, JavaScript, CSS, images...
– Gère l'affichage du site
• Plugin = dossier
– Fichiers PHP, JavaScript, CSS, images...
– Gère une fonctionnalité additionnelle
8. Si je veux
Plusieurs sites depuis le même backoffice ?
• Configuration aisée
• Création à la volée
• Chaque site est indépendant
• WordPress.com
9. Si je veux
Des flux RSS pour mes contenus ?
• Aucune configuration requise
• Plusieurs formats supportés :
– RSS 0.92, 1 et 2
– ATOM
• Pour tous les contenus et leurs commentaires
10. Si je veux
Ajouter des « widgets » sur mes pages ?
• Simple drag & drop
• Contenu libre ou automatique
• Intégrable dans une ou plusieurs colonnes
11. Si je veux
Gérer mes menus de navigation ?
• Simple drag & drop
• Tous les contenus
• Emplacements prévus
• Embarquement dans les widgets !
12. Si je veux
Avoir un site performant ?
• API de mise en cache mise à disposition
– Stockage du cache paramétrable
– Utilisée en interne partout
• Possibilité d'étendre le système à d'autres niveaux
• Base de données indexée par défaut
13. Si je veux
Embarquer un contenu externe dans un contenu ?
• Format « oEmbed » pris en charge
– Standard
– Plusieurs services intégrés par défaut : Youtube, Slideshare...
• Simplicité extrême
• Bientôt un lecteur audio / vidéo intégré (3.6)
15. Quelques extensions utiles
Any Mobile Theme Switcher
• Détection de la visite d'un « mobile »
• Activation d'un thème en fonction
• Possibilité d'avoir des thèmes spécifiques
http://wordpress.org/extend/plugins/any-mobile-theme-switcher/
16. Quelques extensions utiles
BuddyPress
• Couche « sociale »
• Gestion de communauté
• Lui-même extensible par des plugins
http://wordpress.org/extend/plugins/buddypress/
17. Quelques extensions utiles
W3 Total Cache
• Ajout de multiples couches de cache
• Gestion des options de stockage
• Aucun besoin de développement spécifique
http://wordpress.org/extend/plugins/w3-total-cache/
18. Quelques extensions utiles
Google Analytics for WordPress
• Envoi auto des statistiques à Google Analytics
• Gestion des téléchargements de fichiers
• Plusieurs options pour affiner
http://wordpress.org/extend/plugins/google-analytics-for-wordpress/
19. Quelques extensions utiles
Formulaire de contact
• Gratuit : Contact Form 7
• Payant : Gravity Forms
• Création et embarquement de formulaires
• Aucun besoin de développement spécifique
http://wordpress.org/extend/plugins/contact-form-7/
http://www.gravityforms.com/
21. Quelques extensions utiles
WordPress SEO
• Comble les « trous » de WordPress en référencement
• Gestion fine des meta données pour chaque contenu
• Ajout de fonctionnalités (fil d'ariane)
http://wordpress.org/extend/plugins/wordpress-seo/
24. Comment chercher pour mieux trouver ?
Les pièges et risques
• Payant != qualité
• Code malveillant
• Mauvaise architecture mettant en péril les performances
25. Comment chercher pour mieux trouver ?
Un plugin
• Dépôt officiel : http://wordpress.org/extend/plugins/
– Audités
– Gratuits
• Se servir des stats (dernière mise à jour, étoiles, ...)
• Tester !
26. Comment chercher pour mieux trouver ?
Un thème
• Dépôt officiel : http://wordpress.org/extend/themes/
– Audités
– Gratuits
• Dépôts sérieux : ThemeForest, Woo Themes...
• Se servir des stats (dernière mise à jour, étoiles, ...)
• Tester !
27. Merci !
http://www.globalis-ms.com
Offre orientée WordPress : http://wp-chrono.com
Communauté francophone : http://www.wordpress-fr.net/
Espace « extensions » : http://wordpress.org/extend/
Sécurité et développement WordPress : http://boiteaweb.fr/
Référencement appliqué à WordPress : http://www.seomix.fr
Ressources autour des thèmes WordPress : http://wp-themes-pro.com/
Editor's Notes
On va donc d'abord faire un petit connaissance. Entre nous, et puis avec WordPress et ses associés.
Je vais parler un peu de moi, rapidement. Je m'appelle donc lionel, je suis chez GLOBALIS en tant que chef de projet web depuis septembre 2009 après avoir fait une école d'ingénieur. J'y suis également consultant en webperf (performances des sites côté client) et à ce titre, j'ai co-écrit le mémento performances web avec Armel Fauveau. Enfin, je m'intéresse particulièrement à WordPress et suis devenu référent sur cet outil au sein de GLOBALIS. Vous pouvez me retrouver sur twitter pour suivre ma veille ou autres infos croustillantes.
Je vais partir du principe que vous connaissez déjà un petit peu ce qu'est WordPress, et si vous ne le savez pas, je vous conseille la présentation d'introduction à WordPress présentée par Amaury tout à l'heure ! Je vais quand même présenter très succinctement WordPress : il est parti d'une vocation de moteur de blog (des articles, des catégories et des mots-clés) pour finalement se tourner vers une activité de gestion de contenus pure. Il est donc aujourd'hui pour moi à mettre dans la case CMS. Cela dit, il est un socle pour des projets multiples comme des boutiques en ligne, de la gestion communautaire ou de la simple présentation de travail. Ses forces sont sa souplesse et sa simplicité, qui font qu'il est aujourd'hui le CMS le plus utilisé dans le monde. Selon les sources, il représente au moins 10 % du web !
J'ai parlé des forces de WordPress, en voilà 2 autres : les thèmes et les plugins (ou extensions en français). Un thème ou un plugin, c'est juste un dossier de fichiers PHP et autres, placé à un certain niveau de l'arborescence. La différence entre le thème et le plugin, c'est que le thème n'est censé gérer que l'affichage du contenu que le site propose, alors que le plugin n'est censé gérer qu'une fonctionnalité additionnelle à WordPress, sans l'affichage (ou alors, juste un affichage par défaut). Un thème ne contient donc normalement pas d'intelligence « métier » et un plugin très peu d'affichage.
On a déjà parlé des plugins et des thèmes, c'est bien beau mais on ne sait même pas ce que WordPress peut nous réserver. On va donc faire une liste au père noël et voir ce que nous offre WordPress.
Et si je veux avoir plusieurs sites administrables depuis un backoffice centralisé ? Et si je veux mettre à jour la version de WordPress sur tous mes sites en même temps, en un clic ? Et si je veux faire pareil avec mes plugins et mes thèmes ? C'est natif ! Ça s'appelle WordPress multisite, c'est inclus dans le moteur et ça ne nécessite que quelques lignes de configuration pour être actif. Ça vous permet du coup de créer un site en 2 clics depuis le backoffice.
Et si je veux générer un flux RSS pour mes actu ? Et si je veux pouvoir suivre le flux de mes commentaires ? C'est natif ! Vous n'avez rien à faire, juste à créer votre contenu. WordPress reconnaîtra automatiquement l'URL d'un flux et le générera au bon format, avec les bonnes données. Pour chaque article, on peut avoir le flux de ses commentaires ! Et si vous avez créé des contenus personnalisés (autres que les articles ou les pages par défaut), c'est également intégré directement !
Maintenant, je veux pouvoir ajouter des « widgets ». Ce que j'appelle widget, c'est un petit bloc de contenu, soit paramétré depuis le backoffice (fixe ou automatiquement récupéré depuis le contenu du site), soit un contenu externe (une pub, un service météo etc.). Pour ajouter ça, c'est natif ! Vous avez une interface qui vous permet de gérer des « sidebars », qui sont des conteneurs. Dans chacun de ces conteneurs, on peut rajouter autant de widgets que l'on veut : on les dépose en drag&drop et on configure directement si besoin.
Dans la même veine, je veux gérer mes menus : ajouter un élément à mon menu principal, corriger la coquille dans le menu du pied de page, etc. C'est natif ! Toujours grâce au drag&drop, vous ajoutez des contenus préalablement contribués au sein d'un menu, puis vous organisez vos éléments comme bon vous semble : l'ordre, la hiérarchie etc. Et si l'envie vous prend d'afficher un menu dans un widget, c'est évidemment possible !
La vitesse, la rapidité d'un site... C'est important pour tout le monde, que ce soit le petit blog ou le gros groupe de presse. Plus un site est lent, moins il a de chances d'être apprécié et suivi. WordPress souffre d'une mauvaise réputation à ce sujet, alors qu'il ne fait pas moins bien que ses concurrents. Il propose même des outils aux développeurs pour aller plus loin que ce qu'il fait nativement. Parce que nativement, WordPress optimise pas mal de choses : la base de données contient les index nécessaires à des requêtes rapides, et le moteur se sert d'une API de cache mise à disposition de tous les développeurs de la communauté WordPress. Elle est utilisée partout : les contenus, les options, … Par défaut, c'est simplement les résultats de requêtes à la base qui sont stockés dans des variables PHP pour ne pas rejouer la même requête plusieurs fois pour la même page, mais ce cache peut être rendu persistant (memcached par exemple) pour stocker ces résultats et d'autres données de manière permanente, à travers la navigation de tous les internautes. On verra plus tard qu'il existe des extensions qui tirent partie de ces mécanismes, et je peux également vous parler d'un site que je connais qui tient la charge de 6 millions de pages vues par mois avec 2 serveurs et 1 base de données seulement.
On revient à un besoin un peu moins technique : je veux embarquer une vidéo dans mon contenu. Ou bien un son, les slides d'une présentation, un tweet etc. C'est encore et toujours natif ! Il suffit de copier / coller l'URL du contenu (vidéo Youtube par ex.) et le média sera embarqué automatiquement à l'affichage. Cela fonctionne grâce au standard oEmbed que de nombreux services en ligne proposent. WordPress en prend en charge quelques uns. C'est le cas de Youtube, de Slideshare ou de twitter entre autres. Et la petite cerise sur le gâteau, c'est le support des fichiers médias directement envoyés par le backoffice. Exemple : vous chargez un son mp3 dans votre bibliothèque, vous voulez le faire écouter à vos visiteurs, ce sera désormais possible grâce au lecteur intégré qui arrive dans la version 3.6 de WordPress, qui sort dans 5 jours, le 20 mai.
Maintenant qu'on a vu que WordPress ne manque pas de fonctions plus ou moins cachées mais non moins utiles, on va pouvoir s'intéresser à essayer de lui en brancher d'autres. Je vais donc essayer de présenter quelques extensions qui me semblent utiles pour de nombreux besoins.
On commence par un gros sujet du moment : le mobile. On entend beaucoup de choses sur la question du mobile : faut-il faire du natif ? Faut-il avoir un site dédié ? Doit-on avoir des fonctionnalités différentes sur le site mobile ? Etc. Je ne suis pas là pour répondre à ces questions, mais je vous propose une extension qui permet de choisir un thème à afficher à l'internaute en fonction de l'appareil avec lequel il se connecte sur le site. Cela permet de pouvoir afficher le même contenu de manières différentes pour des utilisations différentes. Cette approche, mélangée avec une gestion de thèmes parent – enfant de WordPress, permet également de ne pas surcharger la bande passante des terminaux mobiles en ne leur servant que le contenu qui leur est utile. La notion de thème parent et enfant dans WordPress pourrait se résumer comme ça : l'affichage du site principal (parent) est le maître, c'est lui qui prévaut, mais si l'on active un thème enfant de ce premier thème parent, alors il hérite non seulement de toutes les fonctionnalités de son parent, mais il peut également s'en séparer sur certaines parties.
Deuxième gros sujet : les réseaux sociaux. WordPress par défaut ne gère pas de partie « connectée » sur un site : un membre est forcément là pour publier du contenu sur le site et donc doit passer par le backoffice. Pour gérer une communauté, inviter des personnes à partager leurs idées, leurs envies, leurs doutes etc., ça peut s'avérer compliqué. Heureusement, il y a Findus, ou plutôt BuddyPress. Ce plugin permet d'ajouter une couche « sociale » où chacun pourra s'inscrire, avoir des amis, aimer des choses, publier son actualité, son humeur, et pourra faire partie de groupe où il pourra discuter et partager. Bref, un petit facebook sur du WordPress, mais qui peut également s'étendre grâce à des plugins de plugin...
On va reparler rapidement du cache : voilà un plugin qui tire partie de toutes les possibilités offertes par WordPress. Il peut mettre en cache les requêtes SQL, leurs résultats, les pages HTML générées, il peut le faire sur le disque, grâce à APC, à memcached ou à d'autres outils. Il prend en compte les sites avec CDN et il gère énormément d'options pour configurer plus finement tout cela. Il en existe d'autres, mais celui-ci peut tout faire, voilà pourquoi je l'ai présenté.
Un passage obligé : les stats. Un bon éditeur de contenu doit forcément étudier le comportement de son audience, et ça passe en général par des outils comme Google Analytics. Ce plugin permet d'intégrer le fameux « tag » fourni par Google automatiquement : il suffit de se connecter à son compte Google et d'accéder à la page de configuration du plugin pour choisir avec quel compte on veut jouer. Simple comme bonjour, et ça marche. Plusieurs options sont quand même possibles, pour par exemple ne pas compter les personnes connectées au backoffice dans les stats, suivre les clics qui font sortir les visiteurs du site ou encore les téléchargements de fichiers.
Il y a forcément une page de contact sur un site web. Souvent avec un formulaire qui permet de se défouler lorsqu'on n'est pas content. Créer un formulaire, pour un développeur, c'est assez simple, mais pour un contributeur, par où commence-t-on ?! On commence par installer un des deux plugins dont je parle : Contact Form 7 ou Gravity Forms. Le premier est gratuit, puissant, mais pas très ergonomique, le deuxième est payant et très bien pensé pour les utilisateurs. Créer un formulaire grâce à du drag&drop, obtenir un code à copier / coller dans son contenu et configurer le fonctionnement de ce formulaire lorsque l'internaute le valide : c'est aussi simple que cela.
Par défaut, WordPress n'affiche qu'une langue. Il existe de nombreuses traductions de l'outil, mais on choisit une fois pour toutes la langue de notre site. Si l'on veut proposer un contenu traduit dans plusieurs langues, on peut alors installer WPML (pour WordPress MultiLingual plugin). Ce plugin est payant et permet de tout traduire. On choisit les langues disponibles, puis on peut traduire des contenus existants, en créer de nouveaux dans chacune des langues etc. Cela vaut aussi bien pour les articles que pour les menus d'ailleurs. Le plugin propose même de traduire les contenus en suivant un workflow, où les traducteurs ne font que proposer, et où les éditeurs doivent relire, faire des allers-retours et valider.
Le référencement est bien sûr au cœur des préoccupations des éditeurs de contenus : à quoi cela sert d'écrire si personne ne nous lit ? WordPress s'installe par défaut avec de nombreux atouts pour un bon référencement naturel, mais il est bien sûr toujours possibles d'aller plus loin. C'est ce que fait ce plugin. Il permet de gérer toutes les données utiles aux moteurs de recherche pour chaque contenu : les mots-clés, la description. Il va même jusqu'à repérer les mots-clés d'un article depuis son contenu ! Il peut également générer des fichiers comme des sitemaps et permet d'intégrer facilement un fil d'ariane, deux fonctionnalités qui s'avèrent très appréciées des moteurs de recherche.
Enfin, on finit par le graal : je veux vendre ! Oui, il est possible de transformer WordPress en véritable site e-commerce. L'avantage, c'est que l'on garde la puissance de la gestion de contenus et on peut donc mixer les deux : boutique et contenu. Pour la boutique, vous pouvez vous tourner vers WooCommerce qui a sorti sa version 2 il n'y a pas si longtemps que ça et qui sort du lot (il existe bien sûr d'autres plugins e-commerce). Celui-ci vous permettra de gérer de nombreuses fonctions spécifiques comme les stocks, les préventes, les taux de tva, les devises, les moyens de livraison, les coupons de réduction etc. Bien sûr, il vous permet d'avoir des stats sur votre boutique et n'a plus grand chose à envier aux outils dédiés à ce type de besoin.
J'ai donc présenté quelques extensions, mais si vous avez un besoin spécifique que je n'ai pas décrit et que vous comptez chercher par vous-même comment y répondre, par où commencer et quels sont les pièges à éviter ? C'est ce que je vais décrire maintenant.
En règle générale, les pièges sont simples : les plugins et thèmes payants ne sont pas forcément de bonne qualité. Il ne faudra donc pas forcément se tourner vers les boutiques dites « premium » pour être sûr de trouver ce que l'on cherche. Les risques que l'on a à chercher n'importe où n'importe comment, c'est de se retrouver avec du code malveillant, c'est-à-dire introduisant une faille de sécurité dans votre site, dans le but soit d'inclure des publicités, soit même de prendre l'accès à votre serveur ! On risque également de se retrouver avec un outil qui ne respecte pas forcément les normes de développement de WordPress et réinvente la roue, jusqu'à dégrader les performances globales du site.
Si vous voulez trouver un plugin, je vous conseille de vous concentrer sur le dépôt officiel. Il contient aujourd'hui près de 25 000 plugins, donc vous pourrez sûrement trouver votre bonheur. L'avantage, c'est que les plugins qui sont là passent par une phase d'audit et sont donc normalement assurés d'être « sains ». Ca ne veut pas dire qu'ils sont de qualité non plus, mais il y a beaucoup moins de risque de se retrouver avec un code malveillant. Ensuite, le site fournit plusieurs informations qui peuvent être utiles au choix d'un plugin : le nombre d'étoiles et de votes associés : si un plugin n'a pas d'étoiles et beaucoup de votes, vous pouvez passer votre chemin. De même, la date de dernière mise à jour, ça vous permet de voir si l'auteur est actif, si le plugin ne risque pas de planter avec votre version etc. Et puis le changelog peut vous permettre également de voir si l'auteur a fait des corrections de sécurité (ça arrive forcément), ce qui est bon signe contrairement à ce que l'on pourrait croire. Enfin, la meilleure barrière contre les surprises reste le test : testez les plugins sur un environnement détaché de la prod et vérifiez que tout va bien, que ce soit la fonctionnalité ou le reste du site.
Pour les thèmes, j'ai envie de dire que c'est pareil : les mêmes pièges, les mêmes risques. Simplement, le dépôt officiel est peut-être moins utilisé que celui des plugins (1 800 thèmes environ), je peux donc vous conseiller d'autres sites « sérieux » proposant des thèmes généralement sains. Le système des étoiles et autres stats reste vrai, et surtout, le test est toujours obligatoire pour ne rien louper ! Si vous avez des doutes, même après un test, faites auditer l'outil ou renseignez-vous auprès de professionnels.
Voilà j'en ai fini, donc merci à vous de m'avoir écouté, si vous avez des questions n'hésitez pas, je serai également présent après, vous pourrez venir me trouver sans problème. Je vous ai mis là quelques ressources utiles, pas toutes sinon j'y passais l'heure mais quelques unes qui sont variées et intéressantes.