Youtube shortcode

时间:2013-12-16 作者:Macko Tarana

我正在努力使这个短代码起作用,但没有任何成功。所有的尝试都给了我一个白色的方块。

  function youtube($atts) {
    extract(shortcode_atts(array(
    "value" => \'https://www.youtube.com/watch?v=EhWopzlRwZ8\',
    "width" => \'475\',
    "height" => \'350\',
    "name"=> \'movie\',
    "allowFullScreen" => \'true\',
    "allowScriptAccess"=>\'always\',
    ), $atts));
    return \'<object style="height: \'.$height.\'px; width: \'.$width.\'px"><param name="\'.$name.\'" value="\'.$value.\'"><param name="allowFullScreen" value="\'.$allowFullScreen.\'"></param><param name="allowScriptAccess" value="\'.$allowScriptAccess.\'"></param><embed src="\'.$value.\'" type="application/x-shockwave-flash" allowfullscreen="\'.$allowFullScreen.\'" allowScriptAccess="\'.$allowScriptAccess.\'" width="\'.$width.\'" height="\'.$height.\'"></embed></object>\';
    }
    add_shortcode("youtube", "youtube");

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

关于代码的几点说明:

1) 首先,您应该使用以下内容:

https://www.youtube.com/v/EhWopzlRwZ8

而不是YouTube页面:

https://www.youtube.com/watch?v=EhWopzlRwZ8

在嵌入代码中。

2) 您始终可以使用[embed] 如果需要嵌入YouTube视频,请使用快捷码:

[embed width="600" height="400"]https://www.youtube.com/watch?v=EhWopzlRwZ8[/embed]
3) 例如,您应该考虑将前缀添加到快捷码回调中macko_tarana_ 避免函数名与其他插件冲突。

4) 尽量避免extract(..., 使用$atts = shortcode_atts(... 相反

5) 考虑将第三个参数设置为shortcode_atts, i、 e.短代码名称,以便您可以使用shortcode_atts_{$shortcode} 滤器更多信息here 在法典中。

6) 总是escape 输入属性,例如esc_attr()esc_url().

希望这有帮助。

结束

相关推荐

Strip shortcode from excerpt

我有一个挑战,我发现我不是网络上唯一一个有同样问题的人,然而,目前还没有解决方案。我正在尝试从我的自定义帖子类型摘录中删除短代码。以下是我的示例:http://guidepaperback.com/city/new-century-hotel/在侧边栏中有一个“邻居”小部件,它显示带有摘录的图像。。。一些人正在展示这个问题。有什么建议吗?提前感谢