The media_upload_file() WordPress PHP function handles uploading a generic file.
Usage
media_upload_file();
Parameters
- None
More information
See WordPress Developer Resources: media_upload_file()
Examples
Upload a File Using the Default WordPress Media Uploader
// Register a custom admin menu add_action('admin_menu', 'register_custom_media_uploader_menu'); function register_custom_media_uploader_menu() { add_menu_page('Custom Media Uploader', 'Custom Media Uploader', 'manage_options', 'custom_media_uploader', 'custom_media_uploader_page', '', 200); } // Create the custom media uploader page function custom_media_uploader_page() { echo '<h1>Upload Your File</h1>'; media_upload_file(); }
This example adds a custom admin menu item called ‘Custom Media Uploader’. When clicked, it opens a page where you can use the default WordPress media uploader to upload a file.
Upload an Image File from the Frontend
// Register a custom shortcode for frontend image uploading add_shortcode('frontend_image_uploader', 'frontend_image_uploader_shortcode'); function frontend_image_uploader_shortcode() { ob_start(); echo '<h2>Upload an Image</h2>'; media_upload_file(); return ob_get_clean(); }
This example creates a shortcode [frontend_image_uploader]
that can be used on any page or post to display the media uploader on the frontend, allowing users to upload an image.
Limit File Types for Upload
// Register a custom admin menu add_action('admin_menu', 'register_custom_media_uploader_menu'); function register_custom_media_uploader_menu() { add_menu_page('Custom Media Uploader', 'Custom Media Uploader', 'manage_options', 'custom_media_uploader', 'custom_media_uploader_page', '', 200); } // Create the custom media uploader page function custom_media_uploader_page() { echo '<h1>Upload Your Image</h1>'; add_filter('upload_mimes', 'custom_upload_mimes'); media_upload_file(); remove_filter('upload_mimes', 'custom_upload_mimes'); } // Limit the allowed file types to images only function custom_upload_mimes($mimes) { $mimes = array('jpg|jpeg|jpe' => 'image/jpeg', 'png' => 'image/png', 'gif' => 'image/gif'); return $mimes; }
This example adds a custom admin menu item ‘Custom Media Uploader’ which, when clicked, opens a page where you can upload an image file. The allowed file types are limited to JPEG, PNG, and GIF.