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 | ?>
|
---|