web-dev-qa-db-ja.com

Iframeを使用せずにvimeoの埋め込み用のカスタムパラメータを使用する方法

私は自分のVimeoクリップにいくつかの埋め込みパラメータを付けようとしています。私は次の2つの指示を使ってそれを実行しようとしました:

残念ながら、YouTubeに有効なものはVimeoには有効ではありません。返されるURLに?feature=oembedのような文字列がないため、str_replaceを有効にすることができます。これはURLの最後にある動画のIDです。これはランダムです。 str_replaceを探すためにクリップの正確なIDを入力すれば、うまく機能させることができます。

関数に数値を検索させ、パラメータを付ける方法はありますか?クリップの例は

http://vimeo.com/14956293

そしてoEmbedは

//player.vimeo.com/video/14956293?color=FFFFFF&title=0&byline=0. 

ご覧のとおり、YouTubeにはもう1つ違いがあります。引数は?で始まります。そして引数を&で結びます。 YouTubeは&で始まり、引数を&で結び付けています。

2
jakob

税関パラメータを許可するには、 埋め込みプロバイダ にフィルタを追加する必要があります。

add_filter( 'oembed_fetch_url', 'my_oembed_fetch_url', 10, 3 );

function my_oembed_fetch_url( $provider, $url, $args ) {
    // You can find the list of defaults providers in WP_oEmbed::__construct()
    if ( strpos( $provider, 'vimeo.com' ) !== false) {
        // Check the full list of args here: https://developer.vimeo.com/apis/oembed
        if ( isset( $args['autoplay'] ) ) {
            $provider = add_query_arg( 'autoplay', absint( $args['autoplay'] ), $provider );
        }
        if ( isset( $args['color'] ) && preg_match( '/^[a-f0-9]{6}$/i', $args['color'] ) ) {
            $provider = add_query_arg( 'color', $args['color'], $provider );
        }
        if ( isset( $args['portrait'] ) ) {
            $provider = add_query_arg( 'portrait', absint( $args['portrait'] ), $provider );
        }
        if ( isset( $args['title'] ) ) {
            $provider = add_query_arg( 'title', absint( $args['title'] ), $provider );
        }
        if ( isset( $args['byline'] ) ) {
            $provider = add_query_arg( 'byline', absint( $args['byline'] ), $provider );
        }
    }

    return $provider;
}

それから、あなたのテンプレートで:

<?php wp_oembed_get('http://vimeo.com/44633289', array('color' => '7AB800')); ?>

または投稿のコンテンツの ショートコード を介して:

[vimeo 44633289 color=7AB800]

また、YouTubeや他のすべてのエンプロバイダープロバイダーに対しても同じことができます(my_oembed_fetch_urlで許可されている場合)。

1
mems