使用快捷码时强制WP嵌入视频

时间:2012-06-10 作者:Ben

使用以下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编辑器中一样)。

1 个回复
最合适的回答,由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");

结束

相关推荐

在自定义字段中自动嵌入Vimeo/YouTube(tinyMCE编辑器)

我在我的页面上使用了两个额外的TinyMCE编辑器,在我的主题页面中添加额外的文本字段。我现在意识到,内容交付的思想自定义字段不支持自动嵌入功能。因此,我需要告诉WordPress在这两个额外的自定义字段上启用它。下面是我的函数中包含的后端部分的一个示例。php文件: function monster_meta_options() { global $post; $custom = get_post_custom($post->ID); $mon