WordPress前端投稿实现图片上传

重要:本文最后更新于2019-06-29 08:39:41,某些文章具有时效性,若有错误或已失效,请在下方留言或联系九月网

好像现在的站长都喜欢让用户投稿,最近看上了一款前端富文本编辑器quill,顺便做下前端投稿的功能。前端投稿最重要的就是媒体文件的上传,quill富文本编辑器也提供了相应的api,我们完全可以自己实现前端上传媒体文件的功能。这篇文章主要涉及到WordPress的媒体上传函数wp_insert_attachment的使用,PHP接口的写法,ajax上传文件并回调的应用。来和我一起打造一款自己的前端富文本编辑器吧!

WordPress前端投稿实现图片上传

WordPress前端投稿实现图片上传

首先新建个HTML页面,里面写上加载quill前端编辑器的基本代码,直接参考quill官网的开发文档快速接入步骤说明即可。我这里就不贴HTML头部和底部了,自己写吧。

引入quill样式


引入quill编辑器的js支持


quill编辑器加载容器


quill编辑器初始化配置


上面部分只是为了加载quill富文本编辑器而已,现在用浏览器访问下应该可以看到一个完整的富文本编辑器了,下面接着写上传图片的js代码。

重写编辑器的图片预览方法


好了,前端部分结束,下面是PHP实现的WordPress媒体上传接口,注意文件引用路径。

require dirname(__FILE__).'/../../../../wp-load.php';
//WordPress核心,根目录下,自己换
$file = $_FILES['files'];
if ( !empty( $file ) ) {
// 获取上传目录信息
$wp_upload_dir = wp_upload_dir();
// 将上传的图片文件移动到上传目录
$basename = $file['name'];
$filename = $wp_upload_dir['path'] . '/' . $basename;
$re = rename( $file['tmp_name'], $filename );
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . $basename,
'post_mime_type' => $file['type'],
'post_title' => preg_replace( '/\.[^.]+$/', '', $basename ),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename );
require_once( ABSPATH . 'wp-admin/includes/image.php' );
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
$re = array('code'=>0,'msg'=>'上传成功','data'=>array('src'=>wp_get_attachment_url( $attach_id ),'title'=>''));
print_r(json_encode($re));
}

有点奇怪的是我在PHP返回了json数据,但js接收到的却是字符串,只好在js中转化了下。

给TA打赏
共{{data.count}}人
人已打赏
WordPress

WordPress获取上一篇与下一篇文章信息

2019-6-27 0:00:00

WordPress

纯代码给WordPress分类增加自定义TDK标题描述关键词信息

2019-7-1 0:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索