首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更新ACF中继器,只保存上一次上传的文件

更新ACF中继器,只保存上一次上传的文件
EN

Stack Overflow用户
提问于 2017-04-25 03:50:58
回答 1查看 735关注 0票数 0

我正在使用ACF插件的Wordpress,我想添加新的行到中继器字段,其中一个子字段是文件。

它会正确地保存我插入的所有值,但出于某种原因,它会删除之前保存的其他文件。

我的代码如下所示:

代码语言:javascript
运行
复制
$post_id = $_POST['post_id'];
$params['field_58fcbc968b60c'] = $_POST['user_name'];

if(isset($_POST['expert_question']) && !empty($_POST['expert_question']))
{
    $params['field_58fcbcc08b60d'] = addslashes($_POST['expert_question']);
}

if(isset($_POST['user_email_addr']) && !empty($_POST['user_email_addr']) && filter_var($_POST['user_email_addr'], FILTER_VALIDATE_EMAIL))
{
    $user_email = $_POST['user_email_addr'];
}



if(count($_FILES) && isset($_FILES['expert_question_file']) && !empty($_FILES['expert_question_file']['name']))
{
    $allow_extension = ['pdf','png','jpg','gif','doc','docx','xls','csv'];
    $file_info = wp_handle_upload($_FILES['expert_question_file'], ['test_form' => false]);
    $temp = explode(".",$file_info['file']);
    $extension = end($temp);
    if(in_array(strtolower($extension),$allow_extension))
    {

        $wp_upload_dir = wp_upload_dir();
        $attachment = [
            'guid' => $wp_upload_dir['url'].'/'.basename($file_info['file']),
            'post_mime_type' => $file_info['type'],
            'post_content' => '',
            'post_status' => 'inherit'
        ];

        $attachment_id = wp_insert_attachment($attachment);
        $params['field_58fcbcfd8b60e'] = $attachment_id;
    }else{
        $res = "Invalid file extension";
    }

}

if(have_rows('field_58fcbc758b60b',$post_id)){
    $expert_questions_repeater = get_field('field_58fcbc758b60b', $post_id);
    $expert_questions_repeater[] = $params;
}else{
    $expert_questions_repeater = [];
    $expert_questions_repeater[] = $params;
}

update_field('field_58fcbc758b60b', $expert_questions_repeater, $post_id);

你知道是什么导致了这一切吗?感谢一切,和平与爱:)

EN

回答 1

Stack Overflow用户

发布于 2017-04-25 17:16:01

所以问题是--我必须将附件id添加到字段中。

代码语言:javascript
运行
复制
$params['field_58fcbcfd8b60e'] = $attachment_id;

而是定义为返回"image url“而不是image id的字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43596590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档