我正在使用Wordpress 3.5,它本机支持嵌入许多网站的帖子和页面,包括YouTube。
当我将Youtube视频直接嵌入帖子或页面时(只需复制和粘贴视频url),效果很好,Chrome或Firefox中不会出现跨域策略错误。
然而,当我从自定义页面模板(在主循环之外)中的函数添加URL时,它抛出了一个错误,该模板是我为自定义帖子类型构建的。
Here is what my function looks like:
function my_tour_video()
{
global $post,
$wp_embed;
$my_tour_video = get_post_meta($post->ID, "_my_tour_video", true);
echo $wp_embed->run_shortcode(\'[embed]\' . $my_tour_video . \'[/embed]\');
}
在我的自定义字段中,我尝试了“嵌入”youtube url,也尝试了从浏览器复制和粘贴的“观看”url。
您可以尝试以下示例url:http://www.youtube.com/embed/Y7AvqD2loX4
Error in Chrome looks something like:
不安全的JavaScript尝试使用URL访问帧http://www.mydomain.com 来自具有URL的框架http://www.youtube.com/embed/Y7AvqD2loX4. 域、协议和端口必须匹配。
在这一点上,任何关于如何以正确方式做到这一点的建议都将非常有用。
SO网友:Otto
构建一个伪嵌入短代码,然后调用run\\u短代码来实现这一点是没有意义的。请尝试以下操作:
echo $wp_embed->shortcode(array(), $my_tour_video);
编辑:此外,当我在测试页面上使用您的代码时,使用该嵌入,我不会得到您描述的错误。如果您能够提出一个可复制的测试用例,那么它可能是可以解决的。
如果您使用的是/嵌入/URL,则可能会导致此问题。使用视频的真实URL,就像你在YouTube视频页面上看到的那样。与您通常粘贴到帖子内容中的URL相同。