在模板文件中使用[嵌入]过滤器

时间:2011-08-19 作者:Sjoerd Boerrigter

如果我使用以下内容,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?

2 个回复
最合适的回答,由SO网友:D3XT3R 整理而成

使用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 );
?>

SO网友:Milo

通常您必须使用do_shortcode 然而,在一个模板中,在内容之外放置一个短代码,我在具体嵌入短代码方面遇到了问题,无法使其以这种方式工作。我找到了这个可行的解决方案,但也许有一种方法可以用do\\u 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;
?>

结束

相关推荐

链接图像以在WordPress的lightbox/Fancybox中打开YouTube视频

这是我遇到的问题。。。我想链接一段youtube视频,当用户单击图像时,可以在灯箱/fancybox中播放。有点像这个网站-http://www.adroll.com/ - 如果单击“单击播放”(这是一幅图像),将打开一个窗口(虽然不是灯箱/fancybox),视频将开始自动播放。最好用最少可能的编程来完成。我可以做一些基本的编辑,但不知道如何编写PHP/javascript