Après une activité très orientée Techno, je souhaite revenir un peu à la Photo, en vous exposant quelques oeuvres, sous forme de galeries photos. WordPress propose plusieurs solutions pour cela. Mais le choix n’est pas si facile, et dépend beaucoup de ce que l’on envisage de faire.
Questions et contraintes
La gestion des images en galeries peut se diviser en trois étapes:
- L’upload des images, leur stockage, et la fabrication des vignettes,
- L’affichage des galeries,
- L’affichage des images proprement dites.
Première étape: l’upload
Les questions a se poser sont nombreuses:
- Upload: photo par photo ou en série,
- Stockage: lieu du stockage, organisation en galerie, par date, en album …
- Utilisation des pièces jointes (attachments) de WordPress, ou pas,
- Vignettes: quelle taille, carrée ou rectangulaire (attention au respect de l’orientation),
Seconde étape: affichage de la galerie
Cette phase me semble moins problématique, les questions étant plutôt d’ordre esthétique: la galerie est-elle personnalisable? Dans quelle mesure? Quelle technologie utilise-t-on (Css, flash, Javascript)?
Ici, il faut plutôt faire attention aux objectifs du blog: si la majorité des articles contiennent des galeries, il ne s’agit plus d’un blog classique, mais plutôt d’un photoblog, et dans ce cas, il vaut mieux utiliser un outil spécialisé.
Troisième étape: affichage de l’image
Les questions portent sur l’esthétique et l’ergonomie. Nous avons principalement trois possibilités:
- Afficher l’image seule. Cette image apparaîtra dans une page blanche. Avec cette solution, les problématiques de taille de l’image sont gérés par le navigateur,
- Afficher l’image dans une page particulière du blog. Il faudra pour cela, gérer les templates
image.phpouattachment.php, - Utiliser une librairie Javascript permettant l’affichage en surimpression des images.
Les deux premières solutions gênent, à mon avis, la navigation, dans le sens ou elles imposent des aller-retours de la page « image » à la page « galerie », ce qui n’est pas très agréable.
L’avantage de la troisième solution (javascript), est que l’image apparaît en surimpression de la page courante, ce qui n’impose pas de changement de page. L’autre avantage est visuel: la plupart des scripts assombrissent l’écran avant d’afficher la photo, ce qui améliore sensiblement le confort visuel.
Attention à la taille des images, pour les solutions 2 et 3: il est important que la taille de l’image reste inférieure à la résolution de l’écran. Comme nous ne connaissons pas à l’avance cette résolution, il est préférable de rester sur des tailles du type 800×600.
Les solutions
Globalement, nous avons quatre méthodes possibles:
- Utiliser les fonctions natives de WordPress,
- Utiliser un plugin qui assure les trois étapes (upload, affichage de la galerie et des photos),
- Utiliser plusieurs plugins pour couvrir les trois étapes.
- Stocker les images dans un autre outil (Flickr par exemple), et ne traiter que l’affichage au niveau de WordPress.
Jusqu’à la version 2.5, WordPress ne proposait rien de réellement exploitable. La version 2.5 apporte le Media Manager et le shortcode gallery, qui améliorent sensiblement les choses, mais la solution proposée manque de souplesse:
- La création des vignettes (deux tailles seulement), ne tient pas forcement compte de l’orientation de l’image initiale,
- Le choix du/des répertoires de stockage est limité
Néanmoins, pour un utilisation occasionnelle, les fonctionnalités des versions 2.5 et 2.6.x sont suffisantes: L’étape 1 est assurée par le Media Manager, l’étape 2 par le shortcode [ gallery], et l’étape 3 peut être assurée par une template image.php ou attachment.php.
Si l’on opte pour une solution basée sur des plugins, il faut rester vigilant sur deux points:
- L’indépendance vis-à-vis des plugins: modifient-ils la base, sont-ils intrusifs, pourra-t-on changer de plugin sans remettre en cause l’intégralité des galeries?
- L’impact des plugins sur les performances globales du blog (taille et complexité des scripts).
Le premier point me semble particulièrement important: si les plugins utilisés ne s’appuient pas sur des éléments standards de WordPress, il deviendra impossible d’en changer. Hors la qualité des plugins évoluent dans le temps: nous ne savons si un plugin excellent aujourd’hui, ne deviendra pas médiocre demain, ou s’il sera toujours supporté et maintenu. De ce point de vue, il faut donc garder la possibilité de changer de plugin à tout moment. Nous pouvons tenir le raisonnement inverse: si l’on envisage de gérer beaucoup de galeries, avec de nombreuses photos, la gestion des images par WordPress, va surcharger la table des articles (wp_posts), et ralentir le site.
Le second point concerne plus la phase d’affichage des images, si l’on opte pour une solution Javascript. La référence dans ce domaine est Lightbox, qui a donné naissance à de très nombreux dérivés. Ces scripts se basent sur des librairies Javascript, telles que Prototypes, Scriptaculous, JQuery ou Mootools. Le problème est que certaines de ces librairies sont très lourdes: une solution basée sur Prototypes, par exemple, augmentera le poids de vos pages de plus de 100 Ko !
La question du stockage des photos est importante: comme pour la blogroll, nous avons le choix entre tout garder dans WordPress, ou utiliser un autre outil tier, le blog n’assurant que l’affichage. La réponse dépend de deux paramètres:
- La capacité de stockage de l’hébergeur du blog,
- Des objectifs de publication: si l’objectif est de partager un gros portfolio, il vaudrait peut-être mieux utiliser un outil comme Flickr, et un plugin associé. Si l’objectif est de montrer quelques photos, une solution interne suffira.
Quelques plugins
Compte-tenu du nombre et de la complexité des plugins existants dans ce domaine, se lancer dans un comparatif serait illusoire. je vous livre cependant quelques références de plugins que j’ai eu l’occasion de tester:
- Pour la phase d’upload
- ImageManager, très complet, il remplace avantageusement le Media Manager
- Flexible Upload
- Pour le stockage des photos sur Flickr
- Pour le stockage des photos sur Picasa Web Album
- Gestion de galeries
- NextGen Gallery, certainement le plugin le plus complet dans ce domaine,
- WP G2
- WP Photo Album
- Inline Gallery
- WP Galleria
- Affichage des photos
- LightBox ou Lightbox 2, la référence dans ce domaine, mais ces scripts sont relativement lourds,
- ThickBox, script léger et rapide, mais un peu moins esthétique,
- Slimbox, script léger et ressemblant assez à LightBox
- Photoblog
- Yet Another Photoblog, un photoblog assez réputé,
- PhotoQ
- Lazyest Gallery
Le codex de WordPress consacre un article aux photoblogs et galeries photo, avec de nombreuses références.
Conclusion
Gérer des photos sur un blog nécessite un minimum de réflexion préalable. Il faut globalement répondre à trois questions:
- Stocke-t-on les photos en interne, ou utilise-t-on un outil tiers?
- Souhaite-t-on s’appuyer sur les mécanismes internes à WordPress ou utiliser un plugin?
- Pour l’affichage des images, utilise-t-on un script, les templates attachments?
Répondre à ces questions suppose de savoir précisément ce que l’on veut faire, le point clé étant la quantité de galeries et de photos envisagées.
Pour ma part, même si cela reste un peu lourd, je préfère rester compatible avec WordPress pour le moment. Si mon volume de photos augmente, je changerai de stratégie.
English
C’est aussi ce genre de « galeries » assez courtes en pop-up qui m’intéressent, et j’ai choisi un thème spécial photoblog (autofocus): un bon intermédiaire qui donne un côté dynamique à un port-folio (opinion personnelle). Pour la photothèque plus complète et + documentaire, je renverrai sur des albums zenphoto (si tout va bien, mais ça a l’air possible sans trop de travail).
Merci pour tes réponses.
Quand j’ai écris l’article, je m’interessais surtout a la notion de « galerie », comme celles que je publie de temps en temps.
Si tu veux un « vrai » photoblog », le mieux serait peut-etre d’utiliser des themes wordpress prets a l’emploi. Certains themes proposent un kit pour transformer WP en photoblog. Ils sont parfois payants, mais si le prix reste raisonnable (genre 20 / 30 $), cela reste acceptable, et permet d’economiser beaucoup d’heures de travail.
Merci
Pour mon blog, je l’ai créé chez blogger par facilité (et le référencement est plutôt bon), j’ai utilisé Picasa par défaut, sans chercher plus loin. Mon port-folio est chez OVH qui fonctionne justement bien avec WordPress. Je détourne donc un template photoblog WP pour le transformer en « site », et je garde mon blog blogger pour l’instant. Je pensais utiliser zenphoto pour les photos de mon port-folio (surtout pour faciliter l’indexation moteur du contenu photo, + quelques fonctions dédiées aux photographes qui ont l’air intéressantes): photos hébergées sur OVh et gérées par zenphoto (si j’ai bien tout compris?)
Pour l’instant, j’en suis au stade où chaque question en appelle une centaines d’autres, mais ça avance.
Bonsoir,
J’ai fait un petit tour sur ton blog. Bravo pour les photos que je trouve superbes, notamment les macros.
En cliquant sur les images du dernier article, je me suis apercu qu’elles s’affichaient avec l’icone Picassa. Utiliser Picassa, FlickR ou un equivalent peut etre egalement une bonne idee. Cela permet de beneficier d’un stockage qui peut etre parfois plus important que celui qu’offre l’hebergeur du blog, et cela soulage egalement le blog du traffic genere par le telechargement des photos.
Il existe des plugins (mais je n’en connais pas la qualite) pour interfacer WordPress et ce genre d’outil.
Bonjour,
Je suis en train de refaire mon port-folio en utilisant un photoblog WordPress et un peu perdue dans ce monde nouveau! Merci pour ce billet qui fait réfléchir à la globalité des choses et évite d’opter pour des solutions qui ne seront peut-être pas durables. Je crois que je vais aller faire un tour du côté de chez lightbox 2…
Effectivement.
En fait, le problème général de WordPress serait peut-etre la maintenance de sa base de données.
Au bout de quelques années de fonctionnement, la base contient des tables inutilisées depuis la désinstallation du plugin associés, la table options devient enorme, parce que tres peu de plugins y font reellement le menage avant de partir, la table posts va contenir des versions obsolètes d’articles (versionning) …
Il serait interessant pour la stabilite de la plateforme, que WordPress fournisse un API capable de « memoriser » ce qui est cree lors de l’installation d’un plugin, pour pouvoir l’effacer lors de sa désinstallation.
Peut-etre une idee a fouiller (si ce n’est pas déjà fait).
hmmm, verification des tables crees c probablement pas si simple. photoq par exemple cre des tables supplementaires qui sont uniquement utilisees pour gerer les photos qui se trouvent dans la file d’attente. par contre une fois que la photo est publie elle se trouve plus que dans les tables standards wordpress.
bref, je pense que ca ne suffit pas forcement de juste regarder si un plugin cre des tables mais il faudra regarder si les tables crees interferent avec les tables de wordpress une fois le plugin est desactive.
Merci pour les compliments.
Ta methode de test est interessante.
Je la completerai eventuellement avec la verification des tables creees.
excellent ton article. et merci beaucoup de mentionner photoq (d’ailleurs ton lien pointe vers une vieille version, la plus recente se trouve à l’adresse http://www.whoismanu.com/blog/2008/09/photoq-wordpress-photoblog-plugin-15-brings-tons-of-new-features-to-your-photoblog/).
je suis complètement d’accord avec ton point sur les éléments standards de WordPress (sans faire trop de pub, c’est un des points principaux que j’essaye de respecter dans le développement de photoq). Je suis content que quelqu’un met pour une fois le doigt sur ce point, c’est une chose qui est malheureusement souvent negligée ce qui rends les installations WordPress dépendantes des plugins en question. Comment peut-on tester si un plugin respecte les éléments standards de WordPress? Activer le plugin sur un blog de test, publier quelques articles puis désactiver le plugin. si le blog a la même tête avec plugin activé et désactivé c’est bon.