Le problème : le code des vidéos n’est pas valide en HTML5

Voici ce que le code oEmbed de WordPress donne par défaut avec un lien Youtube :

<p><iframe width="660" height="371" src="https://www.youtube.com/embed/Gvh2Zo7UL6E?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>

Or le petit problème, c’est que tout cela n’est pas vraiment valide au niveau W3C et je commence à me lasser de voir ces erreurs de validation sur toutes les pages du site avec des vidéos :

Erreur 1 : Attribute allowfullscreen not allowed on element iframe at this point.
Erreur 2 : The frameborder attribute on the iframe element is obsolete. Use CSS instead.

La solution : filtrer le rendu oEmbed de WordPress pour purifier le code

Voici donc la solution que j’ai mise en place sur le site : je filtre le code oEmbed de WordPress de manière à retirer le tag allowfullscreen qui n’a rien à faire là et à supprimer l’attribut frameborder, que je remplace par un style="border: none" :

  1. éditez le fichier functions.php de votre thème
  2. ajoutez-y cette fonction :
    <?php /* |----------------------------------------------------------------------- | Sky oEmbed Filter by Matt - www.skyminds.net |----------------------------------------------------------------------- | | The sky_oembed_filter() function attempts to validate WordPress | video oEmbeds for HTML5. | $return is the normal HTML that the oEmbed process would return. | $data is the data received from the oEmbed call, in an object format. | $url is the original URL being queried for oEmbed info. | */ function sky_oembed_filter( $return, $data, $url ) { $return = str_replace('frameborder="0" allowfullscreen', 'style="border: none"', $return); return $return; } add_filter('oembed_dataparse', 'sky_oembed_filter', 90, 3 ); ?>
  3. enregistrez le fichier.

Notez que WordPress cache les résultats oEmbed dans la table postmeta donc après avoir installé ce code et si vous voulez vérifier que cela fonctionne, éditez un article pour que le postmeta se mette à jour.

A lire :  Serveur dédié : ajouter l'authentification SPF, Sender-ID et DKIM à Postfix et Bind9 avec opendkim

Voilà, vos pages avec vidéos YouTube devraient maitenant être valides.

Pour développer votre projet WordPress ou Woocommerce, faites appel à mon expertise pour réaliser un site rapide, performant et fonctionnel.

Contactez-moi

Si vous avez trouvé une faute d’orthographe, informez-nous en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée s’il vous plaît.

Articles en rapport:

WordPress : valider le code oEmbed Youtube en HTML5

par Matt Lecture: 1 min
0

Pin It on Pinterest

Share This

Spelling error report

The following text will be sent to our editors: