X

Cómo subir a la mediateca archivos enviados por los usuarios

Snippets by IsItWP

¿Quieres subir archivos enviados por los usuarios a la biblioteca multimedia? Este fragmento se encargará de subir archivos a la biblioteca multimedia.

Instrucciones

  1. Añade este código al archivo functions.php de tu tema o en un plugin específico del sitio.
  2. 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ón upload_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 );
        }
      }
    }
    
  3. 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.

Comentarios   Deja una respuesta

  1. Cool, is there a code that you can preview the file?

    1. I’m sure anything could be done, but it does not have a preview of the file.

Añadir un comentario

Nos alegra que haya decidido dejar un comentario. Tenga en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad , y que todos los enlaces son nofollow. NO utilice palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

WordPress Launch Checklist

La lista definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de comprobación para el lanzamiento de su próximo sitio web de WordPress en un práctico ebook.
Sí, envíeme el ¡gratuito!