2017-04-24 1 views
0

ACF 플러그인이있는 Wordpress를 사용 중이고 리피터 필드에 새 행을 추가하려고합니다. 하위 필드 중 하나가 파일입니다.업데이트 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

그래서 문제가 있었다 - 나는 분야

$params['field_58fcbcfd8b60e'] = $attachment_id; 

대신 이미지 ID의 "이미지 URL"를 반환하도록 정의 분야에 첨부 ID로했다.