2017-04-24 11 views
0

我使用Wordpress與ACF插件,我想添加新行到中繼器字段,其中一個子字段是文件。更新文件上傳ACF中繼器只保存上傳的最後一個文件

它保存所有的值,我將正確的,但由於某種原因刪除其他文件之前保存。

我的代碼如下所示:

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

任何想法是什麼原因?感謝這一切,和平&愛:)

回答

0

所以,問題是 - 我不得不附件ID到外地

$params['field_58fcbcfd8b60e'] = $attachment_id; 

而是定義爲返回「圖像URL」,而不是像ID的字段。

相關問題