问题描述

如果我使用 WordPress 自动嵌入 YouTube 视频:

 http://www.youtube.com/watch?v=Xog1T5dUxcw [/embed ]
</code></pre>
<p> 这是非常好的,但如果我在模板文件中使用它不起作用。我有一个自定义字段,管理员可以在 YouTube 视频中添加一个 URL 。我想使用以下代码在 sinle-post 中获取视频:</p>
<pre><code><?php
  $custom = get_post_custom($post->ID);
  $url = $custom['_videoLink'][0];
?>
<div class="video">
  <?php $url; ?>
</video>

如何使用标准的 WordPress 功能将 Youtube 网址转换成嵌入网址?</p>
<br><h2> 最佳解决方案</h2>
<p> 改用<code>wp_oembed_get( $your_YouTube_url )</code> 。确保您的模板文件中的<code>echo</code> 。所以这样的东西。</p>
<pre><code><?php
$your_YouTube_url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';
echo wp_oembed_get( $your_YouTube_url );
?>
</code></pre>
<br><h2> 次佳解决方案</h2>
<p> 通常,您必须在模板中使用<a href="/link.php?target=http%3A//codex.wordpress.org/Function_Reference/do_shortcode" target="_blank" rel="nofollow">do_shortcode</a> 才能在内容之外放置一个短代码,但是,我已经遇到嵌入式短代码的麻烦,无法使其工作。我发现这个解决方案是有效的,但是也许有一种方法可以用 do_shortcode 来做,而且我错过了一些。</p>
<pre><code><?php
$custom = get_post_custom($post->ID);
$url = $custom['_videoLink'][0];
if($url):
$shortcode = ''.$url.'
‘;
global $wp_embed;
echo $wp_embed->run_shortcode($shortcode);
endif;
?>

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。