web-dev-qa-db-ja.com

youTubeの埋め込みにadd_filter?

やあみんな、(投稿やページの)バックエンドにYouTubeのビデオリンクを投稿するときwordpressは自動的に埋め込みコードを作成してくれます。

それにフィルタを追加することは可能ですか?すべての埋め込みビデオの幅と高さを100%に変更したいですか。

例えば.

<object width="100%" height="100%">
<param name="movie" value="http://www.youtube.com/v/rBa5qp9sUOY?version=3">
<param name="allowFullScreen" value="true">
<param name="allowscriptaccess" value="always">
<embed src="http://www.youtube.com/v/rBa5qp9sUOY?version=3" type="application/x-shockwave-flash" width="100%" height="100%" allowscriptaccess="always" allowfullscreen="true">
</object>`

どのようにこれを解決するのですか?

edit:それとも、JavaScriptを使って埋め込みビデオの高さや高さに影響を与えることができるように、objectタグにクラス名を追加することは少なくとも可能ですか。

更新日:ありがとうございます私は次のコードを試してみましたが、うまくいきませんか?

add_filter('oembed_result','oembed_result', 10, 3);

function oembed_result($html, $url, $args) {

    // $args includes custom argument
    // modify $html as you need

    //return $html; 
}

return $ htmlがコメントの場合、YouTubeビデオは正しく表示されないはずですが、そうです!

4
mathiregister

はい、Oembeds用のフィルタがあります。実際には2つ(あるいはそれ以上):oembed_resultはキャッシュに入れられる前に(つまり外部埋め込みごとに1回だけ)呼び出され、embed_oembed_htmlはキャッシュの後(つまり項目が表示されるたびに)呼び出されます。一度だけそれを修正する必要があるならば、oembed_resultはおそらくあなたの友人です。 2番目のパラメータは$urlですので、何かをする前にそれがYoutubeから来ているかどうか確認してください。

10
Jan Fabry