WordPress 从前端上传图片并作为文章的附件


使用WordPress开发主题的时候,经常会遇到需要从前端上传图片的需求,咋一看,还挺麻烦的。其实WordPress已经已经为我们提供了非常简单的接口,上传附件只需要几行代码就能搞定。

主要工作就是引用几个必须的文件,然后使用media_handle_uploadupdate_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后台看到的效果和直接在后台插入缩略图是一样的。怎么样?是不是非常简单?如果你有更简单的方法,欢迎在评论中提出。

  • 分享:
评论
还没有评论
    发表评论 说点什么