web-dev-qa-db-ja.com

YouTubeはパラメータを埋め込みますか?

これによると: https://codex.wordpress.org/Embeds

YouTubeリンクを投稿の本文に貼り付けるだけで、埋め込みYouTubeビデオになります。これは私にはうまくいきますが、YouTubeリンクに渡すパラメータは無視しているようです。たとえば、貼り付けたとします。

https://www.youtube.com/watch?v=XYZ12345&rel=0

生成されたHTMLは以下のとおりです。

<iframe width="500" height="281" src="https://www.youtube.com/embed/XYZ12345?feature=oembed" frameborder="0" allowfullscreen=""></iframe>

ご覧のとおり、&rel=0パラメータは生成された埋め込みHTMLにありません。埋め込みにパラメータを渡すためのトリックはありますか?

1
Jake Wilson

出力にフックするために使用できるフィルタは常にあります。 embed_oembed_html を参照してください。これをカスタムプラグインまたは子テーマの関数ファイルで試してみてください。他のクエリ文字列がiframesrc属性に追加されます。

add_filter("embed_oembed_html", function( $html, $url, $attr ) { 
    parse_str(parse_url($url, PHP_URL_QUERY), $url);
    if ( $url ) {
        foreach ( $url as $q=>$v ) {
            preg_match('/src="([^"]+)"/', $html, $src);
            if ( isset( $src[1] ) ) {
                $html = str_replace(
                    $src[1],
                    add_query_arg( array( $q=>$v ), $src[1] ),
                    $html
                );
            }
        }
    }
    return $html;
}, 10, 3);

iframesrcに追加したくないクエリ文字列がないことを確認し、それらをループ内のcontinue;でスキップします。

それが役立つことを願っています。

1
Samuel Elh