web-dev-qa-db-ja.com

テンプレートファイルに[埋め込み]フィルタを使用する

私が使用する場合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に変換する方法

9

代わりに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 );
?>
13
D3XT3R

通常、コンテンツの外側にショートコードを配置するには、テンプレートで 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;
?>
10
Milo