説明
upload_mimes は、アップロードを許可するファイルの種類を変更するフィルターです。
基本構文
apply_filters( 'upload_mimes', array $mimes, int|WP_User|null $user )
引数
$mimes:拡張子とMIMEタイプの連想配列$user:ユーザー
戻り値
許可するMIMEタイプの配列を返します。
使い方(サンプル)
add_filter( 'upload_mimes', function( $mimes ) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
} );
注意点
- SVGなど、スクリプトを含み得る形式を許可する場合は、セキュリティに注意します。
実務での使いどころ
- メディアにアップロードできるファイルの種類を、追加・制限するとき。
よくあるミスと対処
- SVGなど、スクリプトを含められるファイルを、誰でもアップロードできるようにしている。管理者に限定するだけでなく、信頼できる相手のファイルに限るか、サニタイズする仕組みを使う。環境によっては、
wp_check_filetype_and_extフィルターも必要になる。 - 配列を、返していない。
- 追加するときは、
拡張子 => MIMEタイプの形式で指定する。既存のキーは、jpg|jpeg|jpeのように、複数の拡張子を並べた形。
NG例
add_filter( 'upload_mimes', function ( $mimes ) {
$mimes['svg'] = 'image/svg+xml'; // 誰でもアップロードでき、返してもいない
} );
OK例
add_filter( 'upload_mimes', function ( $mimes ) {
if ( current_user_can( 'manage_options' ) ) {
$mimes['svg'] = 'image/svg+xml';
}
return $mimes;
} );
使い分け早見表
| フィルター・関数 | 役割 |
|---|---|
upload_mimes |
アップロードできる種類の、一覧 |
wp_check_filetype() |
拡張子から、MIMEタイプを判定する |
wp_handle_upload() |
アップロードを、処理する |

コメント