web-dev-qa-db-ja.com

どうやってoEmbedに固定の高さと幅の寸法を表示させることができますか?

私の貢献者の何人かがプレビュー機能を使うときにフラッシュ埋め込みを見るのに問題があるので、私は私のサイトにビデオを埋め込む新しい方法を探ろうとしています。

理想的には[embed]ショートコードでoEmbedを使用するのが最も簡単でしょうが、私は解決策を見つけることができないような問題に遭遇しています。

[メディア]タブで埋め込みの最大サイズを指定できることを私は知っていますが、それは私がやりたいことではありません。私たちのサイトに表示されるすべての写真やビデオは継続性のために560ピクセルx 340ピクセルであり、それらは私がoEmbedsに押し付けたい寸法ですが、私はそれをする方法がわかりません!

Googleは役に立たなかったのでここで助けを探してください!

1
Mark Spivey

あなたがoEmbedコードを使うことを言及しているとき、私はあなたがメディアにURLを持って行くWordPressの能力(YouTubeからのもののような)と に言及していると思います それを投稿に。

その場合は、WordPressが提供する embed_oembed_html フックを利用できます。

これがカスタム関数を使ってできることです:

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

    // Set the height of the video
    $height_pattern = "/height=\"[0-9]*\"/";
    $html = preg_replace($height_pattern, "height='560'", $html);

    // Set the width of the video
    $width_pattern = "/width=\"[0-9]*\"/";
    $html = preg_replace($width_pattern, "width='340'", $html);

    // Now return the updated markup
    return $html;

} // end example_custom_oembed_dimensions
add_filter('embed_oembed_html', 'example_custom_oembed_dimensions', 10, 3);

あなたはあなたがあなたのサイトの向こう側にメディアのために一貫した幅と高さを使っていると言います、しかしあなたはメディア設定ページを使うことに興味がありません。

一貫性を保つために、メディア設定の値をプログラム的に強制することができます。これらの値は、作業全体を通じてフィルタで使用されます。

たとえば、最初にメディアサイズを設定する必要があります。

function example_force_media_size() {

    if(get_option('embed_size_w') != 560) {
        update_option('embed_size_w', 560);
    } // end if

    if(get_option('embed_size_h') != 340) {
        update_option('embed_size_h', 340);
    } // end if

} // end example_force_media_size
add_action('init', 'example_force_media_size');

これで、誰かがメディア設定ページでそれらの設定を上書きしようとするときはいつでも、この機能は発火して値を強制するでしょう。

次に、それらの値を取得して、メディアを埋め込むときにそれらを使用できます。

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

    // Find the height value, replace it with Media Settings value
    $height_pattern = "/height=\"[0-9]*\"/";
    $height = get_option('embed_size_h');
    $html = preg_replace($height_pattern, "height='$height'", $html);

    // Find the width value, replace it with Media Settings value
    $width_pattern = "/height=\"[0-9]*\"/";
    $width = get_option('embed_size_w');
    $html = preg_replace($width_pattern, "width='$width'", $html);

    // Now return the updated markup
    return $html;

} // end example_custom_oembed_dimensions
add_filter('embed_oembed_html', 'example_custom_oembed_dimensions', 10, 3);

最初の機能はあなたが必要とするすべてであるかもしれませんが、メディア設定の値を強制することは同様に他のタイプのメディアの周りにカスタムフィルタを書くことをより簡単にするかもしれません。

2
Tom

あなたがフラッシュビデオを埋め込もうとしているならば、あなたは試してみるべきです kimiliフラッシュ埋め込み プラグイン..フラッシュの埋め込みをより簡単にし、サイズなどを制御するのをより簡単にします。

0
Sagive SEO