Mam wtyczkę formularza WordPress i używam media_handle_upload
do przesyłania plików i uzyskiwania tam identyfikatorów bezpośrednio i dołączam ich identyfikatory do postu jako meta datę, użyłem tego, aby to zrobić:
HTML pola formularza to:
<input type="file" name="my_file_upload" id="my_file_upload">
A kod php to:
$attach_id = media_handle_upload( 'my_file_upload', $post_id );
if ( is_numeric( $attach_id ) ) {
update_post_meta( $post_id, '_my_file_upload', $attach_id );
}
I wszystko działało idealnie.
Teraz próbuję przesłać wiele plików, mój kod HTML to:
<input type="file" name="my_file_upload[]" id="my_file_upload[]" multiple="multiple">
Ale nie mogę sprawić, by media_handle_upload
funkcja działała z przesyłaniem wielu plików.
Każda pomoc będzie mile widziana.
Odpowiedzi:
tutaj, jeśli użyjesz niestandardowego szablonu na początku
w function.php
soure http://www.kvcodes.com/2013/12/create-front-end-multiple-file-upload-wordpress/
źródło
media_handle_upload()
szuka$_FILES[$file_handler]
Jeśli chcesz to zaimplementować bez użycia pliku funkcji, możesz użyć uproszczonej wersji, którą wymyśliłem. To jest testowany kod działa w 100%
Umieść kod PHP na stronie, na której odbywa się przesyłanie. W moim przypadku na tej samej stronie, na której działanie formularza jest ustawione na „#”
Ta metoda obejmie wymagane pliki tylko raz, gdy przesyłanie formularza zostanie wykonane, zamiast dołączać je za każdym razem, gdy funkcja jest wywoływana przez pętlę foreach
źródło
$post_thumbnail_id = wp_get_attachment_image_src($attachment_id, array(800, 600));
ponieważ nie jest potrzebny na przykład. Ale jeśli chcesz uzyskać adres URL obrazu, to ci pomoże :)Dzięki @ shady-m-rasmy Użyłem wspomnianego kodu i wydaje się, że druga pętla foreach (poniżej - w niestandardowej części szablonu) nie jest konieczna, ponieważ jest wykonywana tylko raz.
Więc to tylko wychodzi
źródło
Wiele wpisów dla tego samego meta klucza
źródło
HTML
PHP
źródło