概要
get_allowed_mime_typesフィルタは、WordPressにおいて有効なMIMEタイプを取得するための機能を提供します。このフィルタは、主にファイルのアップロードやメディアの管理に関連するプラグインやテーマで使用され、ユーザーがアップロード可能なファイル形式をカスタマイズする際に便利です。以下は、このフィルタがよく使用される機能の例です。
- 画像ファイルのアップロードを許可する。
- カスタムファイルタイプのサポートを追加する。
- セキュリティ上の理由から許可されたファイル形式を制限する。
- 既存のMIMEタイプのカスタマイズ。
- 特定のユーザー向けに異なるファイル形式を設定する。
- メディアライブラリの管理インターフェースの改良。
- 特定の投稿タイプ用のカスタマイズされたファイルサポート。
- Multi-site環境でのファイルアップロード制限。
構文
function custom_mime_types($mimes) {
// カスタムMIMEタイプを追加
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'custom_mime_types');
パラメータ
$mimes: 既存のMIMEタイプの配列。
戻り値
- 更新されたMIMEタイプの配列。
関連する関数
https://refwp.com/?titleonly=1&s=get_allowed_mime_types
使用可能なバージョン
このフィルタは、WordPress 2.9.0以降で使用可能です。
コアファイルのパス
wp-includes/functions.php
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
- SVGのアップロードを許可する
function allow_svg_upload($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'allow_svg_upload');
このコードはSVGファイルのアップロードを許可するためにMIMEタイプを追加します。
- PDFファイルの追加サポート
function add_pdf_mime_type($mimes) {
$mimes['pdf'] = 'application/pdf';
return $mimes;
}
add_filter('upload_mimes', 'add_pdf_mime_type');
PDFファイルのアップロードを許可するため、MIMEタイプを追加しています。
- カスタムファイルタイプの制限
function restrict_mime_types($mimes) {
unset($mimes['exe']);
return $mimes;
}
add_filter('upload_mimes', 'restrict_mime_types');
このコードは、セキュリティ上の理由から、実行可能ファイル(.exe)のアップロードを禁止します。
- 複数のカスタムMIMEタイプを追加
function custom_multiple_mime_types($mimes) {
$mimes['mp4'] = 'video/mp4';
$mimes['zip'] = 'application/zip';
return $mimes;
}
add_filter('upload_mimes', 'custom_multiple_mime_types');
MP4動画とZIPファイルのアップロードを許可するためにMIMEタイプを追加します。
- 条件付きでファイルタイプを追加
function conditional_mime_type($mimes) {
if (current_user_can('administrator')) {
$mimes['docx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
}
return $mimes;
}
add_filter('upload_mimes', 'conditional_mime_type');
管理者のみがDOCXファイルをアップロードできるようにするため、条件付きでMIMEタイプを追加します。