Wie benutzt man die function media_handle_upload?

Ich habe eine Optionen-Seite, die ich Bilder hochladen kann, und ich könnte das mit der settings API tun und alles, was funktioniert, wird die folgende function verwenden, die der callback für register_setting function register_setting ist:

 function yb_validate_settings($plugin_options){ $options = get_option('yb_theme_options'); if(!empty($_FILES['yb_logo_upload']['tmp_name'])){ $overide = array('test_form' => false); $file = wp_handle_upload($_FILES['yb_logo_upload'], $overide); $plugin_options['yb_logo_upload'] = $file['url']; $file_name = $_FILES['yb_logo_upload']['name']; $upload_dir = wp_upload_dir(); $file_path = $upload_dir['path'].'/'.$file_name; $file_url = $file['url']; $wp_filetype = wp_check_filetype($file_name, null); $attachment = array( 'guid' => $file_url, 'post_mime_type' => $wp_filetype['type'], 'post_title' => $file_name, 'post_status' => 'inherit', 'post_date' => date('Ymd H:i:s') ); $attachment_id = wp_insert_attachment($attachment, $file_path); $attachment_data = wp_generate_attachment_metadata($attachment_id, $file_path); wp_update_attachment_metadata($attachment_id, $attachment_data); }else{ $plugin_options['yb_logo_upload'] = $options['yb_logo_upload']; } return $plugin_options; } 

aber wenn auf den Codex verwiesen wird, empfiehlt es, das media_handle_upload und es wird das Zeug leicht machen. So habe ich es geschafft, den Code innerhalb des media_handle_upload zu ersetzen, um so zu sein:

 function yb_validate_settings($plugin_options){ $options = get_option('yb_theme_options'); if(!empty($_FILES['yb_logo_upload']['tmp_name'])){ $overide = array('test_form' => false); $file = wp_handle_upload($_FILES['yb_logo_upload'], $overide); $plugin_options['yb_logo_upload'] = $file['url']; $attachment_id = media_handle_upload( 'yb_logo_upload', 0 ); }else{ $plugin_options['yb_logo_upload'] = $options['yb_logo_upload']; } return $plugin_options; } 

Der yb_logo_upload ist der Index von $_FILES für das Upload-Eingabefeld und kann trotzdem hochladen, aber wird nicht auf der Medienbibliothek angezeigt und kein Thamnail generiert. Im Allgemeinen keine Metadaten, also wie man stattdessen media_handle_upload verwendet.

Solutions Collecting From Web of "Wie benutzt man die function media_handle_upload?"