我正在尝试为用户创建一个前端表单,以便上传多个图片并将其附加到帖子中。
帖子发布得很好,所有数据都附加了。但我一直得到这两个错误:
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()
真正做到这一点的唯一方法?我希望尽可能遵守标准。
答案 0 :(得分:2)
来自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']