Eu tenho um plug-in de formulário do WordPress e uso media_handle_upload
para fazer upload dos arquivos e obter os IDs diretamente e anexá-los à postagem como uma data meta, usei o seguinte para fazer isso:
O HTML do campo do formulário é:
<input type="file" name="my_file_upload" id="my_file_upload">
E o código php era:
$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 );
}
E tudo estava funcionando perfeitamente.
Agora estou tentando fazer upload de vários arquivos, meu código HTML é:
<input type="file" name="my_file_upload[]" id="my_file_upload[]" multiple="multiple">
Mas eu não posso fazer o media_handle_upload
função funcionar com o upload de vários arquivos.
Qualquer ajuda será apreciada.
Respostas:
aqui, se você usar um modelo personalizado passado isso no começo
em function.php
soure http://www.kvcodes.com/2013/12/create-front-end-multiple-file-upload-wordpress/
fonte
media_handle_upload()
procura$_FILES[$file_handler]
Se você deseja implementar isso sem usar o arquivo de funções, pode usar a versão simplificada que eu criei. Este é o código testado funciona 100%
Coloque o código PHP na página em que o envio ocorre. No meu caso, na mesma página que a ação do formulário está definida como "#"
Esse método incluirá os arquivos necessários apenas uma vez quando o envio do formulário for concluído, em vez de incluí-los sempre que a função for chamada através do loop foreach
fonte
$post_thumbnail_id = wp_get_attachment_image_src($attachment_id, array(800, 600));
, pois é desnecessário para o exemplo. Mas se você deseja obter o URL da imagem, ele vai ajudar você :)Obrigado @ shady-m-rasmy Eu usei o código que você mencionou, e parece que o segundo loop foreach (abaixo - na parte do modelo personalizado) não é necessário, pois é executado apenas uma vez.
Então só sai com
fonte
Várias entradas para a mesma meta-chave
fonte