私が使用する場合WordPressは自動的にYouTubeのビデオを埋め込む:
[embed] http://www.youtube.com/watch?v=Xog1T5dUxcw [/embed ]
これは素晴らしいですが、テンプレートファイルで使用した場合は機能しません。管理者がYouTube動画のURLを入力できるカスタムフィールドがあります。私は次のコードを使用して単一の投稿でビデオを取得したいです。
<?php
$custom = get_post_custom($post->ID);
$url = $custom['_videoLink'][0];
?>
<div class="video">
[embed]<?php $url; ?>[/embed]
</div>
標準のWordPress [embed]関数を使用してYoutube URLを埋め込みURLに変換する方法
代わりにwp_oembed_get( $your_YouTube_url )
を使用してください。テンプレートファイルの中でそれをecho
にしてください。だからこんな感じ。
<?php
$your_YouTube_url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';
echo wp_oembed_get( $your_YouTube_url );
?>
通常、コンテンツの外側にショートコードを配置するには、テンプレートで do_shortcode を使用する必要があります。ただし、埋め込みショートコードには特に問題があり、そのように機能させることはできませんでした。私はうまくいくこの解決策を見つけました、しかし多分do_shortcodeでこれをする方法がある、そして私は何かを逃しました。
<?php
$custom = get_post_custom($post->ID);
$url = $custom['_videoLink'][0];
if($url):
$shortcode = '[embed]'.$url.'[/embed]';
global $wp_embed;
echo $wp_embed->run_shortcode($shortcode);
endif;
?>