概要
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タイプを追加します。