如何让用户从媒体库中选择媒体

时间:2014-01-13 作者:Mark Kaplun

很抱歉研究水平很低,但媒体JS代码对我来说一直是个谜,谷歌搜索也没有给出任何当前合理的答案。

这个场景很简单,我有一个表单,我想让用户上传一个新图像或从媒体库中选择一个。最简单的方法似乎是打开添加媒体模式,并让它处理实际上传(如果需要)。所以我只需要

简单的部分-打开媒体模式

  • 更难的部分-在关闭时获取所选媒体的id和url,甚至可以不以某种方式扩展模式吗?我可能可以接受按钮上的默认文本,但也可以更改它。

  • 1 个回复
    SO网友:perry

    可以找到类似的问题herehere. 我使用以下方法,改编自here:

    主题/插件初始化时:

    wp_enqueue_media();
    
    用Javascript处理媒体对话框:

    var wp_media_dialog_field;
    function selectMedia() {
        var custom_uploader;
        if (custom_uploader) {
            custom_uploader.open();
            return;
        }
        custom_uploader = wp.media.frames.file_frame = wp.media({
            title: \'Choose Image\',
            button: {
                text: \'Choose Image\'
            },
            multiple: false
        });
        custom_uploader.on(\'select\', function() {
            attachment = custom_uploader.state().get(\'selection\').first().toJSON();
            wp_media_dialog_field.val(attachment.url);
        });
        custom_uploader.open();
    }
    
    在Javascript中绑定一些按钮以显示媒体对话框并存储将接受返回值的字段:

    jQuery(\'#my_button_1\').click(function(e) {
        e.preventDefault();
        wp_media_dialog_field = jQuery(\'#my_field_1\');
        selectMedia();
    });
    
    jQuery(\'#my_button_2\').click(function(e) {
        e.preventDefault();
        wp_media_dialog_field = jQuery(\'#my_field_2\');
        selectMedia();
    });
    

    结束

    相关推荐