很抱歉研究水平很低,但媒体JS代码对我来说一直是个谜,谷歌搜索也没有给出任何当前合理的答案。
这个场景很简单,我有一个表单,我想让用户上传一个新图像或从媒体库中选择一个。最简单的方法似乎是打开添加媒体模式,并让它处理实际上传(如果需要)。所以我只需要
简单的部分-打开媒体模式
很抱歉研究水平很低,但媒体JS代码对我来说一直是个谜,谷歌搜索也没有给出任何当前合理的答案。
这个场景很简单,我有一个表单,我想让用户上传一个新图像或从媒体库中选择一个。最简单的方法似乎是打开添加媒体模式,并让它处理实际上传(如果需要)。所以我只需要
简单的部分-打开媒体模式
可以找到类似的问题here 和here. 我使用以下方法,改编自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();
});