convert multipart form (input type = file) into WordPress media library upload
我正在尝试修改一个 wordpress 插件,并且需要确定调整我想要的更改是否可行。
我正在尝试修复的不良功能:
此插件使用自定义帖子。当用户创建这种类型的新帖子时,会有一个上传图片的按钮。此上传依赖于多部分(输入类型 = 文件)而不是媒体库。我试图拦截这个过程并坚持媒体上传器......然后将数据传递给下一个函数,就好像它来自非 wordpress 多部分表单一样。此后的大量功能依赖于以某种方式传入的数据,这就是为什么我试图模仿自然上传文件的结果。
我坚持的问题:
-
提交后调用的函数正在等待 $_FILES 数组数据进入。我不确定是否可以将我自己的数据(从媒体上传器 javascript 返回)强制到此数组中
-
即使我可以强制将数据放入 $_FILES,将返回的 JavaScript 值捕获到 PHP 变量中似乎也是个问题。 - 我正在考虑使用'on_submit'并制作一个JS函数来用值填充HTML输入......但我想不出之后如何轻松地将这些值放入$_FILES。
- 媒体库确实使用了 $_FILES 数组(wordpress 核心包含/media.php),但是当我在插件文件中使用 var_dump 时,这些值都为空。
这是一种方法。从您的插件中删除有问题的文件上传器。
1 2 3 4 5 6 7 | add_filter('add_meta_boxes', 'hide_meta_boxes_file_uploader'); function hide_meta_boxes_file_uploader() { remove_meta_box('metabox_id', 'custom_post_type', 'context');//edit value accordingly } |
然后按照此处所述添加您自己的媒体上传器。只需将字段名称设置为您删除的
我意识到在不同的地方更改代码更合适。使用 wp_insert_attachment.
将 $_FILE 表单值作为帖子附件插入到数据库中
这就是我所做的