【问题标题】:update ACF repeater with file upload saving only the last file uploaded使用文件上传更新 ACF 中继器,仅保存最后上传的文件
【发布时间】:2017-09-21 15:16:57
【问题描述】:

我正在使用带有 ACF 插件的 Wordpress,我想向转发器字段添加新行,其中一个子字段是文件。

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

我的代码如下所示:

$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);

知道是什么原因造成的吗?谢谢大家,和平与爱:)

【问题讨论】:

    标签: wordpress advanced-custom-fields


    【解决方案1】:

    所以问题是 - 我必须将附件 ID 附加到该字段

    $params['field_58fcbcfd8b60e'] = $attachment_id;
    

    但该字段定义为返回“图像 url”而不是图像 ID。

    【讨论】:

      猜你喜欢
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 2012-03-09
      • 2020-09-02
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多