2017-04-24 2 views
0

Ich benutze Wordpress mit ACF-Plugin und ich möchte neue Zeilen Repeater-Feld hinzufügen, Eines der Unterfelder ist Datei.update ACF-Repeater mit Datei-Upload nur die zuletzt hochgeladene Datei speichern

Es speichert alle Werte, die ich richtig einfüge, aber aus irgendeinem Grund entfernt die anderen zuvor gespeicherten Dateien.

mein Code sieht wie folgt aus:

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

Jede Idee, was kann die Ursache sein? Dank ist alles, Frieden & Liebe :)

Antwort

0

So war das Problem - ich auf das Feld mit dem Befestigungs ID hatte

$params['field_58fcbcfd8b60e'] = $attachment_id; 

aber das Feld anstelle von Bild-ID zurückzukehren „Bild-URL“ definiert.

Verwandte Themen