WordPressで指定したファイル形式をアップロード可能・不可能にする方法

WordPressで指定したファイル形式をアップロード可能・不可能にする方法

WordPressで指定したファイル形式をアップロード可能・不可能にする方法

WordPressでは、アップロードが許可されているファイル形式が決まっています。ファイル形式が許可されていないと、ファイルをアップロードした時にエラーになってしまいます。

今回は、アップロードが許可されていないファイル形式を許可したり、逆にアップロードできるファイル形式の許可を取り消す方法をご紹介いたします。

アップロードが許可されているファイル形式

アップロードが許可されているファイル形式は、wp-includesフォルダ内のfunctions.phpで以下のように定義されています。


function wp_get_mime_types() {
 /**
 * Filters the list of mime types and file extensions.
 *
 * This filter should be used to add, not remove, mime types. To remove
 * mime types, use the {@see 'upload_mimes'} filter.
 *
 * @since 3.5.0
 *
 * @param array $wp_get_mime_types Mime types keyed by the file extension regex
 * corresponding to those types.
 */
 return apply_filters( 'mime_types', array(
 // Image formats.
 'jpg|jpeg|jpe' => 'image/jpeg',
 'gif' => 'image/gif',
 'png' => 'image/png',
 'bmp' => 'image/bmp',
 'tiff|tif' => 'image/tiff',
 'ico' => 'image/x-icon',
 // Video formats.
 'asf|asx' => 'video/x-ms-asf',
 'wmv' => 'video/x-ms-wmv',
 'wmx' => 'video/x-ms-wmx',
 'wm' => 'video/x-ms-wm',
 'avi' => 'video/avi',
 'divx' => 'video/divx',
 'flv' => 'video/x-flv',
 'mov|qt' => 'video/quicktime',
 'mpeg|mpg|mpe' => 'video/mpeg',
 'mp4|m4v' => 'video/mp4',
 'ogv' => 'video/ogg',
 'webm' => 'video/webm',
 'mkv' => 'video/x-matroska',
 '3gp|3gpp' => 'video/3gpp', // Can also be audio
 '3g2|3gp2' => 'video/3gpp2', // Can also be audio
 // Text formats.
 'txt|asc|c|cc|h|srt' => 'text/plain',
 'csv' => 'text/csv',
 'tsv' => 'text/tab-separated-values',
 'ics' => 'text/calendar',
 'rtx' => 'text/richtext',
 'css' => 'text/css',
 'htm|html' => 'text/html',
 'vtt' => 'text/vtt',
 'dfxp' => 'application/ttaf+xml',
 // Audio formats.
 'mp3|m4a|m4b' => 'audio/mpeg',
 'ra|ram' => 'audio/x-realaudio',
 'wav' => 'audio/wav',
 'ogg|oga' => 'audio/ogg',
 'mid|midi' => 'audio/midi',
 'wma' => 'audio/x-ms-wma',
 'wax' => 'audio/x-ms-wax',
 'mka' => 'audio/x-matroska',
 // Misc application formats.
 'rtf' => 'application/rtf',
 'js' => 'application/javascript',
 'pdf' => 'application/pdf',
 'swf' => 'application/x-shockwave-flash',
 'class' => 'application/java',
 'tar' => 'application/x-tar',
 'zip' => 'application/zip',
 'gz|gzip' => 'application/x-gzip',
 'rar' => 'application/rar',
 '7z' => 'application/x-7z-compressed',
 'exe' => 'application/x-msdownload',
 'psd' => 'application/octet-stream',
 'xcf' => 'application/octet-stream',
 // MS Office formats.
 'doc' => 'application/msword',
 'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
 'wri' => 'application/vnd.ms-write',
 'xla|xls|xlt|xlw' => 'application/vnd.ms-excel',
 'mdb' => 'application/vnd.ms-access',
 'mpp' => 'application/vnd.ms-project',
 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
 'docm' => 'application/vnd.ms-word.document.macroEnabled.12',
 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
 'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
 'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
 'oxps' => 'application/oxps',
 'xps' => 'application/vnd.ms-xpsdocument',
 // OpenOffice formats.
 'odt' => 'application/vnd.oasis.opendocument.text',
 'odp' => 'application/vnd.oasis.opendocument.presentation',
 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
 'odg' => 'application/vnd.oasis.opendocument.graphics',
 'odc' => 'application/vnd.oasis.opendocument.chart',
 'odb' => 'application/vnd.oasis.opendocument.database',
 'odf' => 'application/vnd.oasis.opendocument.formula',
 // WordPerfect formats.
 'wp|wpd' => 'application/wordperfect',
 // iWork formats.
 'key' => 'application/vnd.apple.keynote',
 'numbers' => 'application/vnd.apple.numbers',
 'pages' => 'application/vnd.apple.pages',
 ) );
}

指定したファイル形式をアップロード可能にする

指定したファイル形式をアップロード可能にするためには、サイトに適用しているテーマフォルダ内のfunctions.phpに以下のような記述を追加します。


function allow_mime_type( $mimes ) {
 $mimes['ai'] = 'application/postscript';
 return $mimes;
}
add_filter( 'upload_mimes', 'allow_mime_type' );

上記の例では、Illustratorのaiファイルをアップロード可能にするための内容です。

「ai」の部分は許可したいファイルの拡張子、「application/postscript」の部分にはMIME Content-Typeを入れます。MIME Content-Typeを調べるには、MIME Content-Type 表が参考になります。

指定したファイル形式をアップロード不可能にする

指定したファイル形式をアップロード不可能にするためには、テーマフォルダ内のfunctions.phpに以下のような記述を追加します。


function disallow_mime_type( $mimes ){
 unset( $mimes['pdf'] );
 return $mimes;
}
add_filter( 'upload_mimes', 'disallow_mime_type' );

「pdf」の部分に、アップロード不可能にしたいファイルの拡張子を入れます。

あとがき

アップロードが許可されておらずエラーになる場合や、逆にアップロードを制限したい場合にお試しください。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です