WordPress.org

Make WordPress Core

Ticket #21594: 21594.diff

File 21594.diff, 8.8 KB (added by ryan, 6 years ago)
  • wp-includes/functions.php

     
    458458                                if ( false !== $url_parts ) {
    459459                                        $extension = pathinfo( $url_parts['path'], PATHINFO_EXTENSION );
    460460                                        if ( !empty( $extension ) ) {
    461                                                 foreach ( get_allowed_mime_types( ) as $exts => $mime ) {
     461                                                foreach ( wp_get_mime_types() as $exts => $mime ) {
    462462                                                        if ( preg_match( '!^(' . $exts . ')$!i', $extension ) ) {
    463463                                                                $type = $mime;
    464464                                                                break;
     
    17541754}
    17551755
    17561756/**
     1757 * Retrieve list of mime types and file extensions.
     1758 *
     1759 * @since 3.5.0
     1760 *
     1761 * @uses apply_filters() Calls 'mime_types' on returned array. This filter should
     1762 * be used to add types, not remove them. To remove types use the upload_mimes filter.
     1763 *
     1764 * @return array Array of mime types keyed by the file extension regex corresponding to those types.
     1765 */
     1766function wp_get_mime_types() {
     1767        // Accepted MIME types are set here as PCRE unless provided.
     1768        return apply_filters( 'mime_types', array(
     1769        // Image formats
     1770        'jpg|jpeg|jpe' => 'image/jpeg',
     1771        'gif' => 'image/gif',
     1772        'png' => 'image/png',
     1773        'bmp' => 'image/bmp',
     1774        'tif|tiff' => 'image/tiff',
     1775        'ico' => 'image/x-icon',
     1776        // Video formats
     1777        'asf|asx|wax|wmv|wmx' => 'video/asf',
     1778        'avi' => 'video/avi',
     1779        'divx' => 'video/divx',
     1780        'flv' => 'video/x-flv',
     1781        'mov|qt' => 'video/quicktime',
     1782        'mpeg|mpg|mpe' => 'video/mpeg',
     1783        'mp4|m4v' => 'video/mp4',
     1784        'ogv' => 'video/ogg',
     1785        'mkv' => 'video/x-matroska',
     1786        // Text formats
     1787        'txt|asc|c|cc|h' => 'text/plain',
     1788        'csv' => 'text/csv',
     1789        'tsv' => 'text/tab-separated-values',
     1790        'ics' => 'text/calendar',
     1791        'rtx' => 'text/richtext',
     1792        'css' => 'text/css',
     1793        'htm|html' => 'text/html',
     1794        // Audio formats
     1795        'mp3|m4a|m4b' => 'audio/mpeg',
     1796        'ra|ram' => 'audio/x-realaudio',
     1797        'wav' => 'audio/wav',
     1798        'ogg|oga' => 'audio/ogg',
     1799        'mid|midi' => 'audio/midi',
     1800        'wma' => 'audio/wma',
     1801        'mka' => 'audio/x-matroska',
     1802        // Misc application formats
     1803        'rtf' => 'application/rtf',
     1804        'js' => 'application/javascript',
     1805        'pdf' => 'application/pdf',
     1806        'swf' => 'application/x-shockwave-flash',
     1807        'class' => 'application/java',
     1808        'tar' => 'application/x-tar',
     1809        'zip' => 'application/zip',
     1810        'gz|gzip' => 'application/x-gzip',
     1811        'rar' => 'application/rar',
     1812        '7z' => 'application/x-7z-compressed',
     1813        'exe' => 'application/x-msdownload',
     1814        // MS Office formats
     1815        'doc' => 'application/msword',
     1816        'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
     1817        'wri' => 'application/vnd.ms-write',
     1818        'xla|xls|xlt|xlw' => 'application/vnd.ms-excel',
     1819        'mdb' => 'application/vnd.ms-access',
     1820        'mpp' => 'application/vnd.ms-project',
     1821        'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
     1822        'docm' => 'application/vnd.ms-word.document.macroEnabled.12',
     1823        'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
     1824        'dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
     1825        'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
     1826        'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
     1827        'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
     1828        'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
     1829        'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
     1830        'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
     1831        'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
     1832        'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
     1833        'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
     1834        'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
     1835        'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
     1836        'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
     1837        'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
     1838        'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
     1839        'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
     1840        'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
     1841        // OpenOffice formats
     1842        'odt' => 'application/vnd.oasis.opendocument.text',
     1843        'odp' => 'application/vnd.oasis.opendocument.presentation',
     1844        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
     1845        'odg' => 'application/vnd.oasis.opendocument.graphics',
     1846        'odc' => 'application/vnd.oasis.opendocument.chart',
     1847        'odb' => 'application/vnd.oasis.opendocument.database',
     1848        'odf' => 'application/vnd.oasis.opendocument.formula',
     1849        // WordPerfect formats
     1850        'wp|wpd' => 'application/wordperfect',
     1851        ) );
     1852}
     1853/**
    17571854 * Retrieve list of allowed mime types and file extensions.
    17581855 *
    17591856 * @since 2.8.6
    17601857 *
    17611858 * @uses apply_filters() Calls 'upload_mimes' on returned array
     1859 * @uses wp_get_upload_mime_types() to fetch the list of mime types
     1860 *
    17621861 * @return array Array of mime types keyed by the file extension regex corresponding to those types.
    17631862 */
    17641863function get_allowed_mime_types() {
    1765         static $mimes = false;
    1766 
    1767         if ( !$mimes ) {
    1768                 // Accepted MIME types are set here as PCRE unless provided.
    1769                 $mimes = apply_filters( 'upload_mimes', array(
    1770                 // Image formats
    1771                 'jpg|jpeg|jpe' => 'image/jpeg',
    1772                 'gif' => 'image/gif',
    1773                 'png' => 'image/png',
    1774                 'bmp' => 'image/bmp',
    1775                 'tif|tiff' => 'image/tiff',
    1776                 'ico' => 'image/x-icon',
    1777                 // Video formats
    1778                 'asf|asx|wax|wmv|wmx' => 'video/asf',
    1779                 'avi' => 'video/avi',
    1780                 'divx' => 'video/divx',
    1781                 'flv' => 'video/x-flv',
    1782                 'mov|qt' => 'video/quicktime',
    1783                 'mpeg|mpg|mpe' => 'video/mpeg',
    1784                 'mp4|m4v' => 'video/mp4',
    1785                 'ogv' => 'video/ogg',
    1786                 'mkv' => 'video/x-matroska',
    1787                 // Text formats
    1788                 'txt|asc|c|cc|h' => 'text/plain',
    1789                 'csv' => 'text/csv',
    1790                 'tsv' => 'text/tab-separated-values',
    1791                 'ics' => 'text/calendar',
    1792                 'rtx' => 'text/richtext',
    1793                 'css' => 'text/css',
    1794                 'htm|html' => 'text/html',
    1795                 // Audio formats
    1796                 'mp3|m4a|m4b' => 'audio/mpeg',
    1797                 'ra|ram' => 'audio/x-realaudio',
    1798                 'wav' => 'audio/wav',
    1799                 'ogg|oga' => 'audio/ogg',
    1800                 'mid|midi' => 'audio/midi',
    1801                 'wma' => 'audio/wma',
    1802                 'mka' => 'audio/x-matroska',
    1803                 // Misc application formats
    1804                 'rtf' => 'application/rtf',
    1805                 'js' => 'application/javascript',
    1806                 'pdf' => 'application/pdf',
    1807                 'swf' => 'application/x-shockwave-flash',
    1808                 'class' => 'application/java',
    1809                 'tar' => 'application/x-tar',
    1810                 'zip' => 'application/zip',
    1811                 'gz|gzip' => 'application/x-gzip',
    1812                 'rar' => 'application/rar',
    1813                 '7z' => 'application/x-7z-compressed',
    1814                 'exe' => 'application/x-msdownload',
    1815                 // MS Office formats
    1816                 'doc' => 'application/msword',
    1817                 'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
    1818                 'wri' => 'application/vnd.ms-write',
    1819                 'xla|xls|xlt|xlw' => 'application/vnd.ms-excel',
    1820                 'mdb' => 'application/vnd.ms-access',
    1821                 'mpp' => 'application/vnd.ms-project',
    1822                 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    1823                 'docm' => 'application/vnd.ms-word.document.macroEnabled.12',
    1824                 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
    1825                 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
    1826                 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
    1827                 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
    1828                 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
    1829                 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
    1830                 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
    1831                 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
    1832                 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
    1833                 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
    1834                 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
    1835                 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
    1836                 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
    1837                 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
    1838                 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
    1839                 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
    1840                 'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
    1841                 'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
    1842                 // OpenOffice formats
    1843                 'odt' => 'application/vnd.oasis.opendocument.text',
    1844                 'odp' => 'application/vnd.oasis.opendocument.presentation',
    1845                 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
    1846                 'odg' => 'application/vnd.oasis.opendocument.graphics',
    1847                 'odc' => 'application/vnd.oasis.opendocument.chart',
    1848                 'odb' => 'application/vnd.oasis.opendocument.database',
    1849                 'odf' => 'application/vnd.oasis.opendocument.formula',
    1850                 // WordPerfect formats
    1851                 'wp|wpd' => 'application/wordperfect',
    1852                 ) );
    1853         }
    1854 
    1855         return $mimes;
     1864        return apply_filters( 'upload_mimes', wp_get_mime_types() );
    18561865}
    18571866
    18581867/**