web-dev-qa-db-fra.com

Comment ajouter plusieurs images de galerie de produits à partir de l'interface frontale

-Je gère un magasin de débutants

-Les utilisateurs ont la possibilité d'ajouter des produits en utilisant wp insert post

-La mise en ligne de plusieurs images dans la galerie de produits n’ajoutera que la dernière image à la publication mais dans le média, elles sont toutes attachées à la publication correcte.

C'est mon code

function.php

function my_handle_attachment($file_handler,$post_id,$set_thu=false) {
  if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false();

  require_once(ABSPATH . "wp-admin" . '/includes/image.php');
  require_once(ABSPATH . "wp-admin" . '/includes/file.php');
  require_once(ABSPATH . "wp-admin" . '/includes/media.php');

  $attach_id = media_handle_upload( $file_handler, $post_id );

  if ( is_numeric( $attach_id ) ) {

    update_post_meta( $post_id, '_product_image_gallery', $attach_id );

  }
  return $attach_id;  
}

l'extrémité avant

if ( $_FILES ) { 
        $files = $_FILES["my_file_upload"];  

        foreach ($files['name'] as $key => $value) {      

                if ($files['name'][$key]) { 

                    $file = array( 
                        'name' => $files['name'][$key],
                        'type' => $files['type'][$key], 
                        'tmp_name' => $files['tmp_name'][$key], 
                        'error' => $files['error'][$key],
                        'size' => $files['size'][$key]
                    ); 
                    $_FILES = array ("my_file_upload" => $file); 

                    $newupload = my_handle_attachment( "my_file_upload", $post_id);


                } 

            } 

    }

contribution

<input type="file" name="my_file_upload[]" multiple="multiple" >

Cela téléchargera toutes les images et les joindra au bon message, mais seule la dernière image sera affichée dans la section des images de la galerie Produits. Qu'est-ce que je fais mal?

2
Tsea
if ( ! empty( $_FILES['muti_files'] )  ) {
            $files = $_FILES['muti_files'];
            foreach ($files['name'] as $key => $value){
                if ($files['name'][$key]){
                    $file = array(
                    'name' => $files['name'][$key],
                    'type' => $files['type'][$key],
                    'tmp_name' => $files['tmp_name'][$key],
                    'error' => $files['error'][$key],
                    'size' => $files['size'][$key]
                    );
                }
                $_FILES = array("muti_files" => $file);
                $i=1;
                    foreach ($_FILES as $file => $array) {
                          if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) __return_false();
                            require_once(ABSPATH . "wp-admin" . '/includes/image.php');
                            require_once(ABSPATH . "wp-admin" . '/includes/file.php');
                            require_once(ABSPATH . "wp-admin" . '/includes/media.php');
                            $attachment_id = media_handle_upload($file, $post_id);
                            $vv .= $attachment_id . ",";
                            $i++;
                    }
                    update_post_meta($post_id, '_product_image_gallery',  $vv);
            }
        }
0
Tsea