在 WordPress 任意页面调用多媒体管理器 实现上传图片功能

发布于 2018-03-09 00:29:59 字数 1590 浏览 3164 评论 0

最近在开发主题的时候,需要普通用户能上传自己的作品到网站,大家都知道, WordPress 的会员是分了角色的,只有作者级别的用户才能够上传附件,那么如何在 WordPress 任何一个页面调用插入图片按钮,实现上传图片功能。

你不得不知关于HTML5中File API的秘密

WordPress 已经想到了我们会用这样的一个功能,所以他自己集成了一些函数,帮助我们去完成这样的效果。

wp_enqueue_script('media-upload');
wp_enqueue_script('thickbox');
wp_enqueue_script('my-upload');
wp_enqueue_style('thickbox');

这四个函数,大家应该一看就能明白,不明白的可以去官网函数库找找,主要是引入一些上传窗口的 JS 脚本和 CSS 样式

新建一个文本框和按钮,用于触发上传图片动作和回调函数

<input id="upload_image" type="text" value="" />
<input id="upload_image_button" type="button" value="上传图片" />

样式大家可以自行定义,这里只是演示一下这个功能。

最后编写 JS 代码

jQuery(document).ready(function() {
	jQuery('#upload_image_button').click(function() {
		formfield = jQuery('#upload_image').attr('name');
		tb_show('', '<?php echo admin_url(); ?>media-upload.php?type=image&TB_iframe=true');
		return false;
	});
	window.send_to_editor = function(html) {
		imgurl = jQuery('img',html).attr('src');
		jQuery('#upload_image').val(imgurl);
		tb_remove();
	}
});

如果您的主题没有引入 jQuery 库,可能会报错 jQuery 不是一个对象,那么引入 jQuery 库即可解决,好了代码编写完毕。

  • 不过这个方法还是慎用,毕竟要允许上传就会有一定的风险。
  • 如果你是在 WordPress 的后台调用这个功能,就可以不用引入 jQuery 库。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文