如何使用wordpress中的媒体上传来上传视频文件?

时间:2012-01-19 12:38:12

标签: jquery wordpress

我有一个帖子类型,用于在wordpress上传横幅。使用名称,图像/视频和网址的自定义字段。默认媒体上传可以正常上传图片/视频,但我的问题是我无法将视频基本网址添加到自定义字段。

这是我的代码无法获取视频网址。它只给我视频文件名。

window.send_to_editor = function(html) {

    var imgurlar = html.match(/<img[^>]+src=\"([^\"]+)\"/);
    var imgurl = imgurlar[1];

    //image
    if( imgurl.length ){
        jQuery('#wsp_media').val(imgurl);
        jQuery('#preview-wsp-media').html('<img src="'+imgurl+'" style="max-width:30px; max-height:50px"/><input type="button"  value="Remove" class="button" onclick="removeUspMedia()"/>');
    }
    //video
    else{
        var fileurl = jQuery(html);
            //above "html" carries only video name if I click on "none" button in media library

        //check if fileurl is a video ??
        var fName = jQuery(fileurl).attr('href');

        ext = fName.split('.').pop().toLowerCase();
        var validVideos = [<?php echo "'" . implode("','", explode(' ', $this->validVideos)) . "'"?>];
        if(jQuery.inArray(ext, validVideos) == -1){
            alert('invalid video file selected');
        }else{
            jQuery('#wsp_media').val(fName);
            jQuery('#preview-wsp-media').html('<img src="<?php bloginfo('url')?>/wp-includes/images/crystal/video.png" style="max-width:30px; max-height:50px"/><input type="button"  value="Remove" class="button" onclick="removeUspMedia()"/>');
        }
    }
    tb_remove();

}

1 个答案:

答案 0 :(得分:2)

我自己找到了解决方案。

在&#34; media_send_to_editor&#34;

中添加过滤器
add_filter('media_send_to_editor', 'media_editor', 1, 3);

在输出html中附加视频网址

function media_editor($html, $send_id, $attachment ){
    //get the media's guid and append it to the html
    $post = get_post($send_id);
    $html .= '<media>'.$post->guid.'</media>';
    return $html;
}

获取此类媒体网址

window.send_to_editor = function(html) {
        .......
        .......
        var pathArray = html.match(/<media>(.*)<\/media>/);
        var mediaUrl = pathArray != null && typeof pathArray[1] != 'undefined' ? pathArray[1] : '';
        jQuery('#wsp_media').val(mediaUrl);
        .......
        .......
    }