正在从Wordpress前端上传图像


Uploading images from Wordpress frontend

我正在尝试创建一个前端表单,供用户上传多个图像并将其附加到帖子中。

帖子发布得很好,所有数据都已附上。但我一直得到这两个错误:

Warning: Illegal offset type in mysite/wp-admin/includes/media.php on line 254
Warning: Illegal offset type in mysite/wp-admin/includes/media.php on line 255

我已经尝试了很长一段时间了,并且到处寻找。我似乎无法让它发挥作用。我已经简化了表单,现在只上传一张图片,这也不起作用。下面是我用来处理上传的PHP:

require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');

if ($_FILES) {
     $attach_id = media_handle_upload( $_FILES['upl'], $rid );
     set_post_thumbnail($rid, $attach_id);
     update_post_meta($rid,'_thumbnail_id',$attach_id);
}

其中$rid是邮政ID。

输入字段为<input type="file" name="upl" class="ride_image"/>

我已经检查了我的最大上传大小,$_FILES全局正在正确返回图像。以下是一个示例var_dump($_FILES);

array(1) { ["upl"]=> array(5) { ["name"]=> string(21) "rizkdbr2live_lead.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpgPwO8W" ["error"]=> int(0) ["size"]=> int(85529) } }

请记住,这是最简化的表单。我现在只是想让图片真正上传。我将添加验证之类的内容。

知道那两个Illegal offset type错误是什么吗?我该如何修复它们?这将成为一项非常非常乏味的任务,本应非常容易。在wordpress之外编写自定义PHP来处理图像上传是否违反了所有标准,或者使用media_handle_upload()是真正做到这一点的唯一方法?我想尽可能遵守标准。

来自wordpress codex:

<?php media_handle_upload( $file_id, $post_id, $post_data, $overrides ); ?>
$file_id 
(string) (required) Index into the $_FILES array of the upload

http://codex.wordpress.org/Function_Reference/media_handle_upload

因此,您需要传递upl而不是$_FILE['upl']