使用以下YouTube视频的短代码,如何使WordPress仍然自动为我嵌入视频?
<? /** YouTube shortcode, usage: [youtube align="alignleft" id="123456789" ] */
function shortcode_youtube($atts) {
extract(shortcode_atts(array(
"id" => \'\',
"align" => \'aligncenter\'
), $atts));
return \'<div class="\'.$align.\'">http://www.youtube.com/watch?v=\'.$id.\'</div>\';
}
add_shortcode("youtube", "shortcode_youtube");
?>
它当前所做的是显示视频的url。我想要的是嵌入视频(就像我将视频的url粘贴到wp编辑器中一样)。
最合适的回答,由SO网友:Milo 整理而成
也许有一种更优雅的方法可以做到这一点,但它确实有效:
function shortcode_youtube($atts) {
extract(shortcode_atts(array(
"id" => \'\',
"align" => \'aligncenter\'
), $atts));
global $wp_embed;
$content = \'[embed]http://www.youtube.com/watch?v=\' . $id . \'[/embed]\';
$embed = $wp_embed->run_shortcode( $content );
return \'<div class="\'.$align.\'">\' . $embed . \'</div>\';
}
add_shortcode("youtube", "shortcode_youtube");