J'ai récemment construit un thème qui utilise la fonctionnalité oEmbed de WordPress.
Dans la mesure du possible, j'aime que mes thèmes soient validés via W3C. Le contenu du site Web est basé sur les vidéos Vimeo, je reçois donc plus de 30 erreurs de validation.
L'outil de validation signale les attributs suivants:
frameborder
webkitallowfullscreen
mozallowfullscreen
Je suis conscient du fait que l'attribut allowfullscreen
est requis pour les lecteurs HTML5, mais je me suis demandé s'il existe une solution qui réussira la validation.
Je peux voir que webkitallowfullscreen
et mozallowfullscreen
ne sont plus nécessaires: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
Le fichier class-oembed.php
révèle certains des filtres disponibles concernant les oEmbeds.
Nous pouvons utiliser les filtres oembed_result
_ ou oembed_dataparse
pour modifier le code HTML extrait de Vimeo avant sa mise en cache dans le méta de publication. Voici un exemple pour ce dernier:
add_filter( 'oembed_dataparse', function( $return, $data, $url )
{
// Target only Vimeo:
if(
is_object( $data )
&& property_exists( $data, 'provider_name' )
&& 'Vimeo' === $data->provider_name
)
{
// Remove the unwanted attributes:
$return = str_ireplace(
array(
'frameborder="0"',
'webkitallowfullscreen',
'mozallowfullscreen'
),
'',
$return
);
}
return $return;
}, 10, 3 );
Avant:
<iframe src="//player.vimeo.com/video/32001208"
width="584"
height="329"
frameborder="0"
title="Earth"
webkitallowfullscreen
mozallowfullscreen
allowfullscreen></iframe>
Après:
<iframe src="//player.vimeo.com/video/32001208"
width="584"
height="329"
title="Earth"
allowfullscreen></iframe>
xhtml
:Si vous extrayez la API Vimeo oEmbed , il existe un paramètre xhtml
avec le xhtml=false
par défaut. Vous pouvez essayer par exemple:
https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/32001208
vs.
https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/32001208&xhtml=true
Donc au lieu de:
webkitallowfullscreen mozallowfullscreen allowfullscreen
on a:
webkitallowfullscreen="webkitallowfullscreen"
mozallowfullscreen="mozallowfullscreen"
allowfullscreen="allowfullscreen"
Si nous voulons viserXHTMLvalidation, nous pourrions essayer de le modifier via le oembed_remote_get_args
, par exemple. Mais je n'ai pas testé cela.