概要
elementor/files/allow_unfiltered_upload フィルタは、Elementor プラグインのサポートにより、ユーザーが特定のファイル形式をアップロードできるかどうかを制御します。このフィルタは、セキュリティ上の理由から、特定のファイル形式(例えば、SVGファイルなど)が許可される条件でよく使用されます。誤って悪意のあるファイルがアップロードされるのを防ぐため、通常は制限されているファイル形式を許可することで、以下のような機能を実装する際によく使われます。
- SVGファイルのアップロードを許可する。
- カスタムフォントファイルのアップロードを許可する。
- 特定のマルチメディアファイルのアップロードを許可する。
- デザインを強化するためのカスタムデータのインポートを可能にする。
- ユーザーが作成したショートコードのファイルをアップロードできるようにする。
- テーマやプラグインのカスタマイズ機能を向上させる。
フィルタの概要
- フィルタ名:
elementor/files/allow_unfiltered_upload - 使用可能なプラグイン: Elementor
- 使用可能な WordPress バージョン: WordPress 5.0 以上
-
構文:
add_filter( 'elementor/files/allow_unfiltered_upload', 'your_function_name' ); -
パラメータ:
$allow: boolean 値。デフォルトではfalse。ファイルアップロードの許可を制御。
-
戻り値: boolean 値。ファイルがアップロードできる場合は
true、できない場合はfalse。
サンプルコード
サンプルコード 1
add_filter( 'elementor/files/allow_unfiltered_upload', function( $allow ) {
// SVGファイルのアップロードを許可する
return true;
});
このサンプルコードは、SVGファイルのアップロードを許可するために elementor/files/allow_unfiltered_upload フィルタを使用しています。
サンプルコード 2
add_filter( 'elementor/files/allow_unfiltered_upload', function( $allow ) {
// 特定のユーザーがファイルアップロードを許可される
if ( current_user_can( 'administrator' ) ) {
return true;
}
return $allow;
});
このサンプルコードは、管理者ユーザーに限ってファイルのアップロードを許可します。
サンプルコード 3
add_filter( 'elementor/files/allow_unfiltered_upload', function( $allow ) {
// 環境変数による動的なログイン状態をチェック
if ( getenv( 'ALLOW_UNFILTERED_UPLOAD' ) === 'true' ) {
return true;
}
return $allow;
});
このサンプルコードは、環境変数に基づいてファイルアップロードの許可を制御します。
サンプルコード 4
add_filter( 'elementor/files/allow_unfiltered_upload', function( $allow ) {
// MIMEタイプを追加で確認してアップロードを許可
$mime_types = array( 'application/vnd.ms-fontobject' );
return in_array( $_FILES['upload_file']['type'], $mime_types );
});
このサンプルコードは、指定したMIMEタイプのファイルを許可するためにフィルタを使用しています。
サンプルコード 5
add_filter( 'elementor/files/allow_unfiltered_upload', function( $allow ) {
// アップロードされるカスタムフォントを許可する
if ( strpos( $_FILES['upload_file']['name'], '.woff' ) !== false ) {
return true;
}
return $allow;
});
このサンプルコードは、フォントファイルの中でも特定の拡張子(.woff)のみを許可する条件を設定しています。
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| 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 |