¿Quieres subir archivos enviados por los usuarios a la biblioteca multimedia? Este fragmento se encargará de subir archivos a la biblioteca multimedia.
Instrucciones
- Añade este código al archivo functions.php de tu tema o en un plugin específico del sitio.
- Todos los archivos subidos se almacenan en la matriz
$_FILES
, por lo que tendrá que hacer un bucle a través de la matriz$_FILES
y pasar cada matriz de archivos a la funciónupload_user_file()
. Puedes usar este código en tu manejador de formularios:
if( ! empty( $_FILES ) ) { foreach( $_FILES as $file ) { if( is_array( $file ) ) { $attachment_id = upload_user_file( $file ); } } }
- Recuerda que si quieres que tu formulario sea capaz de manejar la subida de archivos, entonces necesitas añadir el atributo
enctype="multipart/form-data"
a la etiqueta<form>
.
function upload_user_file( $file = array() ) { require_once( ABSPATH . 'wp-admin/includes/admin.php' ); $file_return = wp_handle_upload( $file, array('test_form' => false ) ); if( isset( $file_return['error'] ) || isset( $file_return['upload_error_handler'] ) ) { return false; } else { $filename = $file_return['file']; $attachment = array( 'post_mime_type' => $file_return['type'], 'post_title' => preg_replace( '/.[^.]+$/', '', basename( $filename ) ), 'post_content' => '', 'post_status' => 'inherit', 'guid' => $file_return['url'] ); $attachment_id = wp_insert_attachment( $attachment, $file_return['url'] ); require_once(ABSPATH . 'wp-admin/includes/image.php'); $attachment_data = wp_generate_attachment_metadata( $attachment_id, $filename ); wp_update_attachment_metadata( $attachment_id, $attachment_data ); if( 0 < intval( $attachment_id ) ) { return $attachment_id; } } return false; }
Nota: Si es la primera vez que añade fragmentos de código en WordPress, consulte nuestra guía sobre cómo copiar / pegar correctamente fragmentos de código en WordPress, para no romper accidentalmente su sitio.
Si le ha gustado este fragmento de código, por favor considere consultar Cómo configurar el seguimiento de descargas en WordPress con Google Analytics.
Cool, is there a code that you can preview the file?
I’m sure anything could be done, but it does not have a preview of the file.