尝试制作一个表单将图像上传到 Wordpress,然后将该图像设置为帖子的缩略图。但我似乎无法让 media_handle_upload() 函数正常工作。
文件的表单输入
<input type="file" name="image" />
那么这是服务器端代码
media_handle_upload( $_FILES['image'], 22 );
这就是我得到的回报
object(WP_Error)#212 (2) { ["errors"]=> array(1) { ["upload_error"]=> array(1) { [0]=> string(212) "File is empty...." } } ["error_data"]=> array(0) { } }
我尝试了几种不同的方法来输入文件变量,但似乎都不起作用,我是从 $file_id 到底是什么开始这样做的吗?
media_handle_upload()
,第一个参数应该是
$_FILES
数组中文件的索引名称,因此在您的情况下,它应该如下所示:
media_handle_upload('image', 22);
// Handle file upload
if (isset($_FILES['fileToUpload']) && !empty($_FILES['fileToUpload']['name'])) {
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attachment_id = media_handle_upload('fileToUpload', $post_id);
if (is_wp_error($attachment_id)) {
echo 'Error uploading image: ' . $attachment_id->get_error_message();
} else {
set_post_thumbnail($post_id, $attachment_id);
}
}
return $post_id ? '<p>Post created successfully!</p>' : '<p>Error creating post!</p>';
}