ラック
Home > CMS > 記事 > 2018年3月 > WordPressの埋め込みで埋め込み許可がされていないYoutubeを処理したい

WordPressの埋め込みで埋め込み許可がされていないYoutubeを処理したい

カテゴリ: WordPress

WordPressのサイトで、カスタムフィールドにYoutubeのURLを入力して、それをテンプレートタグwp_oembed_get()を使って出力することでYoutubeの動画を埋め込もうとしたのですが、動画が埋め込みが許可されていないので埋め込みできない、という事態に遭遇しました。

これはこれで仕方ないのですが、せめて

  1. もし動画の埋め込みが許可されている場合は、wp_oembed_get()で取得したコード(埋め込み用のコード)をそのまま出力し、動画を埋め込む
  2. 埋め込みが許可されていない動画のURLだった場合は、リンクとして出力

という切り分けをしたいな、と。

wp_oembed_get(get_field('youtube_url'))という形でYoutubeのURLを入力すると、戻り値が

  • 埋め込みが許可されている場合は埋め込み用のタグが文字列
  • 許可されていない場合は、booleanfalse

が戻り値として返ってくることが分かったので、


if(wp_oembed_get(get_field('youtube_url')) === false) { //埋め込み許可されていない場合
//get_field('youtube_url')の値をaタグのhref属性に指定して出力
}
else { //埋め込み許可されている場合
//wp_oembed_get(get_field('youtube_url'))をそのままechoで出力
}

という形で場合分けすることができました。

……しかし、成功すればstring型、失敗すればboolean型、と型が変わるのはなんともまあPHPらしいなぁ……と思った次第です。

タグ: トラブル対処,カスタムフィールド

 



関連する記事一覧