为什么这个YouTube短码不起作用?

时间:2016-09-13 作者:Jacksonkr

echo do_shortcode(\'https://www.youtube.com/watch?v=vZBCTc9zHtI\');
仅仅是打印

https://www.youtube.com/watch?v=vZBCTc9zHtI" 
在页面上。

我知道我可以用html显示视频

<iframe src="http://www.youtube.com/embed/vZBCTc9zHtI" width="560" height="315" frameborder="0" allowfullscreen></iframe>
但我试图利用wordpress的内置方法。我该怎么做?

4 个回复
最合适的回答,由SO网友:Rituparna sonowal 整理而成

我想这就是你想要的:

<?php echo wp_oembed_get(\'https://www.youtube.com/watch?v=vZBCTc9zHtI\'); ?>
有关更多详细信息,请查看此documentation.

SO网友:Dave Romsey

如果您只想在内容区域嵌入视频,WordPress可以通过oembeds. 您只需将URL粘贴到编辑器中并保存帖子。只要支持嵌入,WordPress就会发挥其魔力并格式化嵌入。

您的呼叫do_shortcode() 没有道理。如前所述,您的代码是“查看此youtube URL字符串并运行其中的短代码”。

SO网友:gsjha

do_shortcode() 
用于打印短代码。您正在其中写入URL。这没有用。尝试实施

wp_oembed_get( $url, $args )
这对你有用。所以你的代码

wp_oembed_get(\'https://www.youtube.com/watch?v=vZBCTc9zHtI\')
或者如果要指定宽度

wp_oembed_get(\'https://www.youtube.com/watch?v=vZBCTc9zHtI\', array(\'width\'=>400))

SO网友:Mark Kaplun

它不起作用,因为在内容中使用youtube url与短代码无关,这就是为什么当您尝试调用do_shortcode, 它实际上做的是修改oEmbed协议,这是一件非常不同的事情。

有一个oEmbed shorcode,您可能可以do_shortcode(\'[oEmbed youtube.com.....]\') 但正如其他答案所指出的,有一个明确的API来实现这一点,而使用短代码是实现这一点的漫长道路。

要记住的最重要的一点是,oEmbed会向youtube服务器发送请求并等待回复,这意味着如果不进行缓存,这种代码会在每次加载时降低页面速度。

相关推荐

我可以将参数传递给Add_ShortCode()函数吗?

正如标题所述,我需要向add_shortcode() 作用换句话说,我传递的那些参数将在的回调函数中使用add_shortcode(). 我该怎么做?请注意,这些与以下结构无关[shortcode 1 2 3] 哪里1, 2, 和3 是用户传递的参数。在我的情况下,参数仅用于编程目的,不应由用户负责。谢谢