Skip to content

Instantly share code, notes, and snippets.

@NandoKstroNet
Forked from bordoni/wordpress-upload.php
Created April 9, 2014 16:47

Revisions

  1. @bordoni bordoni created this gist Aug 24, 2012.
    41 changes: 41 additions & 0 deletions wordpress-upload.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    <?php
    /**
    * Handle file uploading and add attachment.
    *
    * @return array Uploaded file's details on success, error message on failure
    */
    function wp_import_handle_upload() {
    if ( !isset($_FILES['filefield_name']) ) {
    $file['error'] = __( 'File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.' );
    return $file;
    }

    $overrides = array( 'test_form' => false, 'test_type' => true );
    $file = wp_handle_upload( $_FILES['filefield_name'], $overrides );

    if ( isset( $file['error'] ) )
    return $file;

    $url = $file['url'];
    $type = $file['type'];
    $file = $file['file'];
    $filename = basename( $file );

    // Construct the object array
    $object = array(
    'post_title' => $filename,
    'post_content' => $url,
    'post_mime_type' => $type,
    'guid' => $url,
    'context' => 'import',
    'post_status' => 'private'
    );

    // Save the data
    $id = wp_insert_attachment( $object, $file );

    // schedule a cleanup for one day from now in case of failed import or missing wp_import_cleanup() call
    wp_schedule_single_event( time() + 86400, 'importer_scheduled_cleanup', array( $id ) );

    return array( 'file' => $file, 'id' => $id );
    }