时间:2024-03-29
如果你正在使用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后台看到的效果和直接在后台插入缩略图是一样的。看起来非常简单吧!如果你有更简单的方法,欢迎在评论中分享。
Copyright © 2019-2024 mysql.hk