OEmbedが失敗したときに表示される代替画像を指定したいです。
具体的なユースケースは、中国(または他の国)がYouTubeをブロックしたときに代替手段を提供することです。 YouTubeコンテンツはそこでは利用できないことを知っていますが、その場合は代替画像を提供したいと考えています。
この目的のためにoEmbedエラーコードにアクセスできるようにすることはできますか?
この場合は、oEmbedコンテンツをレンダリングする前にdiv
でラップしてから、CSSのbackground-image
プロパティで代替画像を表示するのが最善の方法です。ビデオが読み込まれると、oEmbedコンテンツが背景画像を覆います。
embed_oembed_html
フィルタを使用してラッパーを追加できます。
add_filter('embed_oembed_html', 'your_function_here');
追加の要素をロードすることが心配な場合は、oEmbedがロードされたかどうかを確認するためにJSを使用してクライアント側でチェックを行い、ロードされていない場合は背景画像をラッパーにロードします。
各ビデオにカスタムフィールドを追加すると、はるかに複雑になる可能性がありますが、それが基本的な要点です。
1つの方法は、中国を拠点とするプロキシを介してサーバー側でoEmbedを使用して別の要求を出すことです。
こうすれば、クライアント上のリソースへの呼び出しが失敗するかどうかを事前に知ることができます。ページリクエストの早い段階で、クライアントのIPが地理的にどこにあるのかを確認し、プロキシ経由でリソース、たとえばyoutubeにサーバーサイドの呼び出しを行い、次に予想されるエラーを活用することができます。
Wonderproxy これを達成するための/を見ることができます(私はそれらと提携していませんが、良いことを聞いています)