The mime_types filter in WordPress allows you to add new mime types and their corresponding file extensions to the list of allowed mime types for file uploads.
Usage
add_filter('mime_types', 'my_custom_mime_types'); function my_custom_mime_types($wp_get_mime_types) { // your custom code here return $wp_get_mime_types; }
Parameters
- $wp_get_mime_types (string[]): An array of mime types, where the key is the file extension regex and the value is the mime type.
More information
See WordPress Developer Resources: https://developer.wordpress.org/reference/hooks/mime_types/
Examples
Add WebP support
Add the WebP image format to the list of allowed mime types.
add_filter('mime_types', 'add_webp_mime_type'); function add_webp_mime_type($wp_get_mime_types) { $wp_get_mime_types['webp'] = 'image/webp'; return $wp_get_mime_types; }
Add SVG support
Allow SVG files to be uploaded by adding the appropriate mime type.
add_filter('mime_types', 'add_svg_mime_type'); function add_svg_mime_type($wp_get_mime_types) { $wp_get_mime_types['svg'] = 'image/svg+xml'; return $wp_get_mime_types; }
Add support for custom font formats
Allow uploading custom font formats like WOFF and WOFF2.
add_filter('mime_types', 'add_custom_font_mime_types'); function add_custom_font_mime_types($wp_get_mime_types) { $wp_get_mime_types['woff'] = 'font/woff'; $wp_get_mime_types['woff2'] = 'font/woff2'; return $wp_get_mime_types; }
Add JSON file support
Allow JSON files to be uploaded by adding the corresponding mime type.
add_filter('mime_types', 'add_json_mime_type'); function add_json_mime_type($wp_get_mime_types) { $wp_get_mime_types['json'] = 'application/json'; return $wp_get_mime_types; }
Add support for custom video format
Allow uploading a custom video format, such as OGV.
add_filter('mime_types', 'add_ogv_mime_type'); function add_ogv_mime_type($wp_get_mime_types) { $wp_get_mime_types['ogv'] = 'video/ogg'; return $wp_get_mime_types; }