私は最近WordPressの oEmbed 機能を利用するテーマを作りました。
可能であれば、私のテーマはW3Cを介して検証するのが好きです。このWebサイトのコンテンツはVimeoのビデオによって運営されているので、30を超える検証エラーが発生しています。
検証ツールは次の属性にフラグを立てます。
frameborder
webkitallowfullscreen
mozallowfullscreen
私はallowfullscreen
属性がHTML5プレーヤーに必要であることを知っています、しかし検証に合格する解決策があるかどうか疑問に思いましたか?
webkitallowfullscreen
とmozallowfullscreen
はもう必要ではないことがわかります。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
class-oembed.php
ファイルはoEmbedsに関して利用可能なフィルタのいくつかを明らかにします。
oembed_result
または oembed_dataparse
フィルタを使用して、取得したHTMLを変更できます。投稿メタにキャッシュされる前のVimeo。これが後者の例です。
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 );
前:
<iframe src="//player.vimeo.com/video/32001208"
width="584"
height="329"
frameborder="0"
title="Earth"
webkitallowfullscreen
mozallowfullscreen
allowfullscreen></iframe>
の後:
<iframe src="//player.vimeo.com/video/32001208"
width="584"
height="329"
title="Earth"
allowfullscreen></iframe>
xhtml
に関する追加の注意事項:Vimeo oEmbed API をチェックアウトすると、デフォルトのxhtml=false
を持つxhtml
パラメータがあります。あなたは例えば試すことができます:
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
だから代わりに:
webkitallowfullscreen mozallowfullscreen allowfullscreen
我々が得る:
webkitallowfullscreen="webkitallowfullscreen"
mozallowfullscreen="mozallowfullscreen"
allowfullscreen="allowfullscreen"
XHTMLの検証を目指したい場合は、例えばoembed_remote_get_args
を使ってこれを修正することができます。しかし、私はそれをテストしませんでした。