【发布时间】:2012-11-30 15:02:29
【问题描述】:
WordPress 3.5 最近发布了,我通过thickbox 和window.send_to_editor 使用了WordPress 媒体上传系统,用于我的WordPress 主题中的一些选项(背景、徽标等...)。
但正如您所知,WordPress 已经集成了一个新的媒体管理器,我想使用这个新功能将图像/文件作为自定义字段上传。所以我花了一上午的时间想办法得到想要的结果。
我发现了这个解决方案,它对你们中的一些人可能有用。感谢您对代码或您想到的任何改进提供反馈!
HTML 示例:
<a href="#" class="custom_media_upload">Upload</a>
<img class="custom_media_image" src="" />
<input class="custom_media_url" type="text" name="attachment_url" value="">
<input class="custom_media_id" type="text" name="attachment_id" value="">
jQuery 代码:
$('.custom_media_upload').click(function() {
var send_attachment_bkp = wp.media.editor.send.attachment;
wp.media.editor.send.attachment = function(props, attachment) {
$('.custom_media_image').attr('src', attachment.url);
$('.custom_media_url').val(attachment.url);
$('.custom_media_id').val(attachment.id);
wp.media.editor.send.attachment = send_attachment_bkp;
}
wp.media.editor.open();
return false;
});
如果您想查看attachment 变量中包含的所有设置,您可以使用console.log(attachment) 或alert(attachment)。
【问题讨论】:
-
Wordpress 管理员使用 noConflict 所以我不得不更改 $ -> jQuery。非常有帮助,谢谢!
-
非常感谢这个清晰的例子!传递帖子 ID 就像在 wp.media.editor.open() 中将其作为参数传递一样简单
-
我想知道如何将媒体 API 作为依赖项加载到
wp_enqueue_script()中的某些脚本。我知道wp_enqueue_media()在那里,但我更喜欢使用依赖 - 有没有办法做到这一点?
标签: jquery wordpress file-upload wordpress-3.5