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


9

私が使用する場合、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 [埋め込み]関数を使用して、YouTubeのURLを埋め込みURLに変換するにはどうすればよいですか?

回答:


14

wp_oembed_get( $url )代わりに使用してください。echoテンプレートファイルで確認してください。だから、このようなもの:

<?php
// tot necessary to set this but good if $url is coming from a function
$url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';

// echo the function in your template to render the video
echo wp_oembed_get( $url );
?>

この問題の簡単で最良の解決策。+1
Sam

10

通常、テンプレートで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;
?>

echo do_shortcode($ shortcode)
keatch

@keatch-これをWPのembedショートコードで具体的に試しましたか?先ほど述べたように、他の短いコードは通常は機能しますが、特定の機能は私には機能しません。理由についてはあまり調査していません。これも最新のWPバージョンではありませんでした。
ミロ2012年

1
私はこれが古いことを知っていますが、指摘しておきますと、埋め込みショートコードがテンプレートファイルで機能しないという2013年の今でも同じ問題が発生しています。上記の解決策はうまくいきました。
Eckstein、2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.