我正在努力使这个短代码起作用,但没有任何成功。所有的尝试都给了我一个白色的方块。
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");
最合适的回答,由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()
.
希望这有帮助。