问题描述

我正在尝试做类似于上述问题的事情。我试图让用户发布和上传 front-end 的图像。我已经完成了职位表格和工作。

我刚刚跟着尝试了罗宾·奈特 upload-post-thumbnail-from-the-front-end 发布的答案。可悲的是,我不能让它上班。有什么我想要改变还是编辑?

谢谢。

最佳解决方案

如果您正在谈论答案,我发布了 here 它只需在 iframe 中上传文件即可实现”Ajax like” 提交。

现在,如果您已经有一个处理发布提交的表单,您可以直接在您的表单中添加上传文件字段输入:

<form ...
...
<input type="file" name="thumbnail" id="thumbnail">
...
...
</form>

确保您的表单具有 enctype="multipart/form-data"属性。

然后在您创建帖子后的表单处理脚本 (假设您正在使用 wp_insert_post();) 在新的 var 中保持帖子 ID:

$new_post = wp_insert_post($post_array);

之后添加:

            if (!function_exists('wp_generate_attachment_metadata')){
                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) {
                foreach ($_FILES as $file => $array) {
                    if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) {
                        return "upload error : " . $_FILES[$file]['error'];
                    }
                    $attach_id = media_handle_upload( $file, $new_post );
                }
            }
            if ($attach_id > 0){
                //and if you want to set that image as Post  then use:
                update_post_meta($new_post,'_thumbnail_id',$attach_id);
            }

您的图像将被上传并保存为帖子缩略图。

次佳解决方案

我建议你在这里看看 @Goldenapples 的解决方案,http://goldenapplesdesign.com/2010/07/03/front-end-file-uploads-in-wordpress/

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。