Это довольно простой пример, но он должен помочь вам;
function my_upload_field()
{
echo '<input type="file" name="my_upload_field" />';
}
add_action('init', create_function('',
'add_meta_box("my_upload_field", "Upload File", "my_upload_field", "post");'));
function handle_upload_field($post_ID, $post)
{
if (!empty($_FILES['my_upload_field']['name'])) {
$upload = wp_handle_upload($_FILES['my_upload_field']);
if (!isset($upload['error'])) {
// no errors, do what you like
}
}
}
add_action('wp_insert_post', 'handle_upload_field', 10, 2);
Проверьте кодекс на add_meta_box и посмотрите на wp_handle_upload()
(строка 239 wp-admin/includes/file.php
от 3.0) для получения дополнительной информации.