web-dev-qa-db-ja.com

トルコ語のキャプション付きビデオ埋め込み

私は通常WPに組み込まれている[embed]コードでURLを直接書くことによってビデオを埋め込みます。好きです:[embed]https://www.youtube.com/watch?v=p_o4aY7xkXg[/embed]

しかし今、私はこのビデオがユーザーの好みに関係なくトルコ語の字幕付きで自動的に開くことを望みます。どうやってするか?

これらをURLに追加しようとしましたが、どれもうまくいきませんでした。

  • &yt:cc = on
  • &hl = tr
  • &cc_lang_pref = tr
  • &cc_load_policy = 1

たとえば、TEDビデオの場合、URLに "/ lang/tr /"を追加することでこれを実現します。

[embed]https://www.ted.com/talks/lang/tr/ken_robinson_says_schools_kill_creativity.html[/embed]

YouTubeのための同様の解決策?または他の提案はありますか?

更新日:ポストエディタの "テキスト"セクションにiframeコードを直接追加しました。できます。例:

<iframe src="https://www.youtube.com/embed/1a8pI65emDE?rel=0&cc_load_policy=1&hl=tr" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe>

ビジュアルエディタに入れてもうまくいきません。開発者でない人にとっては少し混乱します。

1
someka

わかりましたことは、埋め込まれたエンドポイントは デフォルトパラメータ 以外はサポートしていないようです。

ですから、あなたができることは、レスポンスを解析し、あなたのパラメータをiframesrcに追加することだけです。これでうまくいくはずです(未テスト)

function wpse_218836_add_youtube_parameter( $return, $data, $url ){
    if ( $data->provider_name === 'YouTube'){
        $additional_parameters = '&cc_load_policy=1&hl=tr';
        return preg_replace('/src="(.*?)"/i', 'src="$1' . $additional_parameters . '"', $return);
    }else{
        return $return;
    }
}

add_filter('oembed_dataparse', 'wpse_218836_add_youtube_parameter', 10, 3);
2
kraftner