使用WordPress开发主题的时候,经常会遇到需要从前端上传图片的需求,咋一看,还挺麻烦的。其实WordPress已经已经为我们提供了非常简单的接口,上传附件只需要几行代码就能搞定。
主要工作就是引用几个必须的文件,然后使用media_handle_upload和update_post_meta功能,我们来看一下代码。
function insert_attachment($file_handler,$post_id,$setthumb='false') { // 检查附件是否上传成功 if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false(); require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); //上传到媒体库并返回附件的ID $attach_id = media_handle_upload( $file_handler, $post_id ); //把上传成功的附件附加到文章 if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); return $attach_id; }
怎么使用上面的函数
这一段是给新手准备的,高手可以直接略过,使用的时候直接把PHP的全局变量$_FILES作为函数的第一个参数,需要插入的文章id作为第二个参数就可以了。
if ($_FILES) { foreach ($_FILES as $file => $array) { $newupload = insert_attachment($file,$post_id); } }
文件上传成功后,在WordPress后台看到的效果和直接在后台插入缩略图是一样的。怎么样?是不是非常简单?如果你有更简单的方法,欢迎在评论中提出。