[44] | 1 | <?php
|
---|
| 2 | /**
|
---|
| 3 | * WordPress Administration Importer API.
|
---|
| 4 | *
|
---|
| 5 | * @package WordPress
|
---|
| 6 | * @subpackage Administration
|
---|
| 7 | */
|
---|
| 8 |
|
---|
| 9 | /**
|
---|
| 10 | * Retrieve list of importers.
|
---|
| 11 | *
|
---|
| 12 | * @since 2.0.0
|
---|
| 13 | *
|
---|
| 14 | * @return array
|
---|
| 15 | */
|
---|
| 16 | function get_importers() {
|
---|
| 17 | global $wp_importers;
|
---|
| 18 | if ( is_array($wp_importers) )
|
---|
| 19 | uasort($wp_importers, create_function('$a, $b', 'return strcmp($a[0], $b[0]);'));
|
---|
| 20 | return $wp_importers;
|
---|
| 21 | }
|
---|
| 22 |
|
---|
| 23 | /**
|
---|
| 24 | * Register importer for WordPress.
|
---|
| 25 | *
|
---|
| 26 | * @since 2.0.0
|
---|
| 27 | *
|
---|
| 28 | * @param string $id Importer tag. Used to uniquely identify importer.
|
---|
| 29 | * @param string $name Importer name and title.
|
---|
| 30 | * @param string $description Importer description.
|
---|
| 31 | * @param callback $callback Callback to run.
|
---|
| 32 | * @return WP_Error Returns WP_Error when $callback is WP_Error.
|
---|
| 33 | */
|
---|
| 34 | function register_importer( $id, $name, $description, $callback ) {
|
---|
| 35 | global $wp_importers;
|
---|
| 36 | if ( is_wp_error( $callback ) )
|
---|
| 37 | return $callback;
|
---|
| 38 | $wp_importers[$id] = array ( $name, $description, $callback );
|
---|
| 39 | }
|
---|
| 40 |
|
---|
| 41 | /**
|
---|
| 42 | * Cleanup importer.
|
---|
| 43 | *
|
---|
| 44 | * Removes attachment based on ID.
|
---|
| 45 | *
|
---|
| 46 | * @since 2.0.0
|
---|
| 47 | *
|
---|
| 48 | * @param string $id Importer ID.
|
---|
| 49 | */
|
---|
| 50 | function wp_import_cleanup( $id ) {
|
---|
| 51 | wp_delete_attachment( $id );
|
---|
| 52 | }
|
---|
| 53 |
|
---|
| 54 | /**
|
---|
| 55 | * Handle importer uploading and add attachment.
|
---|
| 56 | *
|
---|
| 57 | * @since 2.0.0
|
---|
| 58 | *
|
---|
| 59 | * @return array
|
---|
| 60 | */
|
---|
| 61 | function wp_import_handle_upload() {
|
---|
| 62 | $overrides = array( 'test_form' => false, 'test_type' => false );
|
---|
| 63 | $_FILES['import']['name'] .= '.txt';
|
---|
| 64 | $file = wp_handle_upload( $_FILES['import'], $overrides );
|
---|
| 65 |
|
---|
| 66 | if ( isset( $file['error'] ) )
|
---|
| 67 | return $file;
|
---|
| 68 |
|
---|
| 69 | $url = $file['url'];
|
---|
| 70 | $type = $file['type'];
|
---|
| 71 | $file = addslashes( $file['file'] );
|
---|
| 72 | $filename = basename( $file );
|
---|
| 73 |
|
---|
| 74 | // Construct the object array
|
---|
| 75 | $object = array( 'post_title' => $filename,
|
---|
| 76 | 'post_content' => $url,
|
---|
| 77 | 'post_mime_type' => $type,
|
---|
| 78 | 'guid' => $url
|
---|
| 79 | );
|
---|
| 80 |
|
---|
| 81 | // Save the data
|
---|
| 82 | $id = wp_insert_attachment( $object, $file );
|
---|
| 83 |
|
---|
| 84 | return array( 'file' => $file, 'id' => $id );
|
---|
| 85 | }
|
---|
| 86 |
|
---|
| 87 | ?>
|
---|