Comment afficher les miniatures de vidéos Youtubes et Vimeo directement dans WordPress ?

Cas pratique

Dans le cadre d’un développement rapide pour un site personnel, j’utilise des champs meta dans les posts pour définir les urls de vidéos Youtube ou Vimeo à afficher.
Néanmoins, les rédacteurs utilisant ce WordPress sont obligés d’alimenter les article par une « image à la une » (feature image). Cette tache est fastidieuse sur la plupart des articles contenant des vidéos, puisqu’il s’agit souvent de mettre un screenshot de la vidéo.

Jusqu’à présent les rédacteurs :

  • renseignaient l’url de la vidéo;
  • ouvraient la vidéo sur Youtube ou Vimeo;
  • réalisaient une capture d’écran;
  • uploadaient l’image;
  • l’assignaient en tant qu’image à la une.

Solution tout automatique

Vous trouverez ci dessous le code source d’un hook WordPress simpliste qui

  • vérifie qu’une vidéo à été renseignée dans le champs meta;
  • trouve l’id de la vidéo sur Youtube ou Vimeo;
  • importe une miniature de la vidéo;
  • créé le fichier image WordPress correspondant;
  • l’attache à l’article en tant qu’image.

Les réadacteurs n’ont à présent plus qu’une seule tache : renseigner l’url de la vidéo. :)

On pourrait aller bien plus loin avec ce type de fonctionnalité :

  • ne pas mettre à jour l’image si il y en a déjà une
  • étendre les miniature à d’autres systèmes
  • reporter la même chose pour des champs urls quels qu’ils soient (capture d’écran de site avec un phantomJS par exemple)