概要
wpforms_upload_root
は、WPFormsプラグインにおいてアップロードファイルの保存先ディレクトリを変更するためのフィルタです。このフィルタを利用することで、デフォルトのアップロード先をカスタマイズすることが可能です。例えば、特定のフォルダにファイルを保存したり、特定の条件に基づいて保存先を変えたりすることができます。以下は、このフィルタがどのような機能を実装する際によく使われるかの例です。
- アップロードディレクトリをカスタマイズする
- ユーザーごとのアップロード先を分ける
- 特定のファイルタイプに対して異なる保存先を設定する
- セキュリティのために非公開のディレクトリを指定する
- プラグインの機能を拡張するためのアップロード管理
- ファイルの保存先を動的に変更する
構文
add_filter( 'wpforms_upload_root', 'custom_upload_root' );
パラメータ
$upload_root
: デフォルトのアップロードディレクトリパスを示す文字列。
戻り値
フィルタが適用された後の新しいアップロードディレクトリパス。
WPFormsのバージョン
WPForms 1.0.0以降で使用可能。
ワードプレスのバージョン
WordPress 4.9.0以降で使用可能。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
サンプルコード
サンプルコード1: デフォルトのアップロードディレクトリを変更する
add_filter( 'wpforms_upload_root', function() {
return '/custom/upload/directory/';
} );
このコードは、アップロードファイルの保存先を/custom/upload/directory/
に変更します。
サンプルコード2: ユーザーIDに基づいて保存先を変更
add_filter( 'wpforms_upload_root', function( $upload_root ) {
return $upload_root . '/' . get_current_user_id();
} );
このコードは、現在のユーザーIDを使って、各ユーザーごとに独自のアップロードディレクトリを作成します。
サンプルコード3: 特定の条件に基づいて保存先を変更
add_filter( 'wpforms_upload_root', function( $upload_root ) {
if ( is_page( 'contact' ) ) {
return '/contact/uploads/';
}
return $upload_root;
} );
このコードは、「contact」というページでのみアップロード先を/contact/uploads/
に変更します。
サンプルコード4: 指定のファイルタイプに対して保存先を変更
add_filter( 'wpforms_upload_root', function( $upload_root, $form_data ) {
if ( in_array( $form_data['fields']['file_upload']['type'], ['pdf', 'docx'] ) ) {
return '/documents/uploads/';
}
return $upload_root;
}, 10, 2 );
このコードは、アップロードファイルの種類がPDFまたはDOCXの場合、保存先を/documents/uploads/
に変更します。
サンプルコード5: 特殊なディレクトリをセキュリティのために指定
add_filter( 'wpforms_upload_root', function( $upload_root ) {
return '/secure_uploads/';
} );
このコードは、アップロード先を/secure_uploads/
に変更し、より安全なディレクトリを提供します。
このフィルタに関するさらなる情報は、WPFormsの公式ドキュメントを参照してください。