MENU

check_upload_mimes()

check_upload_mimes() は、ユーザーがファイルをアップロードする際に、そのファイルの MIME タイプが許可されたものであるかを検証するための WordPress コア関数です。

主にアップロード処理中に使用され、アップロード可能な拡張子と MIME タイプの整合性を確認・調整する際に役立ちます。この関数は特定のユーザー権限や条件に応じて MIME タイプを動的に制御したい場面に便利です。

目次

基本構文

$allowed_mimes = check_upload_mimes( $user );
  • $user:アップロードを行おうとしているユーザーの情報(WP_User オブジェクトやユーザー ID)
  • 戻り値は、そのユーザーが許可されている MIME タイプの配列です。
  • 例えば、マルチサイト環境やユーザー権限ごとにアップロード制限を行いたい場合などに使用されます。

引き数と戻り値

引数名説明
$filearray$_FILES 配列の1要素。アップロードされたファイル情報を含む連想配列。
戻り値名説明
$filearray元の $file 配列に 'error' キーが追加される場合があります。ファイルサイズ制限に違反していると、その旨のエラーメッセージが格納されます。制限内であれば変更はありません。

使用例

タグを使った使用例

function my_check_user_mimes( $user_id ) {
  $mimes = check_upload_mimes( $user_id );

  echo '<pre>';
  print_r( $mimes );
  echo '</pre>';
}

この関数を呼び出すと、指定ユーザーがアップロード可能な MIME タイプ一覧が表示されます。
特定のユーザー権限に応じたカスタム MIME 制御の基礎として活用できます。

注意点

  • 管理者ユーザーと一般ユーザーでは許可される MIME タイプが異なる場合があります。
  • この関数は MIME タイプの検証を行うものではなく、「現在の許可設定の一覧を取得する」機能に過ぎません。
  • MIME タイプの変更には upload_mimes フィルターを使用します。

よく一緒に使われる関数

wp_get_current_user()

$current_user = wp_get_current_user();
$mimes = check_upload_mimes( $current_user );

現在ログインしているユーザーの MIME 許可一覧を取得する際に使います。

current_user_can()

if ( current_user_can( 'manage_options' ) ) {
  $mimes = check_upload_mimes( get_current_user_id() );
}

管理者ユーザーかどうかで MIME 許可内容を条件分岐させることができます。

upload_mimes フィルター

add_filter( 'upload_mimes', 'my_custom_mimes' );
function my_custom_mimes( $mimes ) {
  $mimes['svg'] = 'image/svg+xml';
  return $mimes;
}

実際に許可される MIME タイプを動的に追加・削除したいときに使用します。

想定されるトラブル

特定の拡張子のファイルがアップロードできない

check_upload_mimes() は拡張子が upload_mimes フィルターに存在しているか確認するため、SVGやWEBPなどが許可されていないとアップロードできません。

解決方法

upload_mimes フィルターを使って MIME タイプを追加する。

add_filter( 'upload_mimes', function( $mimes ) {
  $mimes['webp'] = 'image/webp';
  return $mimes;
} );

マルチサイト環境で MIME タイプが異なる

マルチサイトではサイトネットワーク全体のアップロード設定が site_option_upload_filetypes で制御され、check_upload_mimes() の挙動が変化します。

解決方法

ネットワーク管理画面で「許可ファイルタイプ」を確認し、必要な拡張子を追加する。

Q&A

check_upload_mimes() はアップロード制限を変更できますか?

いいえ、変更はできません。許可された MIME の一覧を「取得」するだけです。

SVG や JSON をアップロードしたいときは?

upload_mimes フィルターで明示的に MIME タイプを追加してください。

check_upload_mimes() はいつ使うべき?

アップロードの前に、指定ユーザーがそのファイルを許可されているかどうか確認したいときに使います。

まとめ

check_upload_mimes() は、WordPress でファイルアップロード時に許可されている MIME タイプの一覧を取得するための関数です。

ユーザー権限や環境により許可内容が異なるため、柔軟に確認したい場合に役立ちます。MIME タイプの追加・削除は upload_mimes フィルターを通じて制御し、チェックやログ出力には本関数を利用するのが基本です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次