CONTACT

    Bonjour tout le monde,

    Je voudrais vous montrer aujourd'hui comment spécifier le titre et la légende d'une image de type JPG dans le fichier image lui-même, afin qu'ils soient positionnés automatiquement dans les champs "Titre" et "Légende" lors de l'upload dans WordPress.

    Ce procédé est devenu indispensable pour moi lors de la création de galeries ou diaporamas avec un grand nombre d'images et nécessitant d'afficher titres et/ou légendes.

    Évidemment il permet également de conserver ces informations là où elles doivent être ! Pas de fichier externe, pas de risque de les perdre en chemin, une logique sans faille !

    Import de fichiers en masse avec titres et légendes

    Le problème est donc le suivant... Lorsque mon client favori me fournit plusieurs dizaines d'images, accompagnées d'un fichier contenant la liste des noms de fichiers JPG et les légendes associées, il m'est complètement insupportable de devoir faire des copier-coller pour renseigner ces informations pour chaque image importée dans la bibliothèque de WordPress.

    Je me suis donc mis en quête d'automatiser le positionnement de ces informations pour que les images puissent être directement intégrées aux galeries sans aucune action manuelle de ma part.

    WordPress et les métadonnées IPTC

    Etant photographe amateur, je me suis naturellement tourné vers les métadonnées stockées dans les fichiers images (EXIF, XMP, IPTC...). Et de toute façon je ne voyais pas d'autre façon de transmettre les infos !

    J'ai ainsi découvert que deux métadonnées de type IPTC étaient récupérées par WordPress lors de l'import, et lui servaient à peupler automatiquement les champs "Titre" et "Légende" : les tags "Headline" et "Caption-abstract".

    Il ne restait plus qu'à renseigner ces étiquettes en masse dans les fichiers images 😉

    Remarque : version graphique ou ligne de commande ?
    Dans cet article, je me penche sur l'aspect traitement par lot car je dois traiter un grand nombre d'images, donc j'ai adopté une solution en ligne de commande. Sachez cependant qu'il est possible de renseigner ces métadonnées avec une interface graphique via des logiciels comme XnView (excellent et gratuit) ou Lightroom.

    Les héros du jour : Exiftool et PowerShell !

    En ce moment, je découvre PowerShell et je l'aime bien, donc c'est lui que je vais utiliser pour automatiser le traitement. Et pour renseigner les infos IPTC en ligne de commande, rien de mieux que le gigantesque couteau suisse de l'image... Exiftool.

    Le fichier d'entrée

    Le fichier fourni par le client est un fichier Word que je convertis en texte (legendes.txt) et que je place dans le répertoire contenant les images :

    Image01.jpg La légende de la première image
    Image02.jpg La légende de la deuxième image
    Image03.jpg La légende de la troisième image

    Le script PowerShell

    La commande est à exécuter dans le dossier des images :

    gc legendes.txt |
    foreach {
      $fields = $_ -split ".jpg "
      $name = $fields[0]
      $caption = $fields[1]
      exiftool.exe -charset IPTC=UTF8 -IPTC:Headline="$name" -IPTC:Caption-abstract="$caption" $name".jpg"
    }

    Explications

    Le script parcourt le fichier des légendes et pour chaque ligne du fichier, il sépare le nom du fichier (sans l'extension) et la légende afin de renseigner le titre et la légende dans les tags IPTC associés, au format UTF-8.

    Dans cet exemple, je positionne le titre avec le nom du fichier, mais je pourrais choisir la légende (dans mon cas souvent trop longue) ou un titre fourni par le client.

    Attention : le fichier des légendes doit être au format UTF-8 si on veut bien transmettre les caractères accentués ou régionaux.
    Si ce n'est pas le cas (caractères extra-terrestres à la place des accents par exemple), il suffit de le convertir/sauvegarder dans ce format avec votre éditeur de texte (NotePad++ pour ma part).

    Conclusion

    Ancien développeur sous Unix/Linux, je suis plutôt du genre à geeker quelques heures sur les forums pour apprendre un nouveau langage et pondre la ligne de commande magique, alors que quelques minutes auraient parfois suffi pour réaliser le boulot à la main, Ctrl+C, Ctrl-V, etc...

    Certes, c'est parfois beaucoup par curiosité 😉 Mais quand il s'agit de répéter la même chose régulièrement, avec des nombres de fichiers parfois énormes... vous comprenez. Maintenant, tout se fera automatiquement en quelques secondes !

    Pour finir, un petit point SEO... Je sens que vous ne tenez plus en place et que vous mourrez tous d'envie de me flageller parce que je n'ai pas parlé du "texte alternatif" si cher à nos moteurs de recherche ! En fait WordPress ne semble pas vouloir renseigner ce champ automatiquement, nativement du moins. Il existe des plugins qui se chargent de le faire, mais comme je n'aime pas trop accumuler les extensions sur mes installs, je vais tester du hack PHP afin de peupler le alt text automatiquement avec la légende 😉 Je vous tiens évidemment au courant !

    Laisser un commentaire

    Votre adresse IP ne sera pas collectée.
    Vous pouvez renseigner votre prénom ou votre pseudo si vous êtes un humain ;-)