概要
wp_delete_file_from_directory
関数は、指定されたディレクトリ内のファイルを削除するための便利な関数です。この関数は、特にプラグインやテーマの開発において、ユーザーがアップロードしたファイルや自動生成されたファイルを管理する際に頻繁に使用されます。以下は、この関数がよく使われるシナリオの例です:
- ユーザーがアップロードした画像ファイルを削除する。
- 古いバックアップファイルを自動的に削除する。
- 一時的に生成したファイルをクリーンアップする。
- 設定の変更に伴い不要になったファイルを削除する。
- プラグインが使用しなくなったリソースを掃除する。
- システムのストレージを管理するための定期的なクリーンアップ。
- メディアライブラリから不要なメディアを削除する。
- ユーザーがアカウントを削除した時に関連ファイルも削除する。
構文
wp_delete_file_from_directory( $file, $directory );
パラメータ
- $file (文字列) – 削除するファイルのパス。
- $directory (文字列) – 対象のディレクトリのパス。
戻り値
- 成功した場合は
true
、失敗した場合はfalse
を返します。
関連する関数
使用可能なバージョン
wp_delete_file_from_directory
関数は、WordPressのバージョン4.0以降で使用可能です。
コアファイルのパス
この関数は、wp-includes/media.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 |
サンプルコード
サンプルコード1: ファイル削除の基本的な使用例
$file = 'example.txt';
$directory = '/path/to/directory/';
$result = wp_delete_file_from_directory( $file, $directory );
if ( $result ) {
echo 'ファイルが正常に削除されました。';
} else {
echo 'ファイルの削除に失敗しました。';
}
説明: 指定したディレクトリ内のexample.txt
ファイルを削除します。削除が成功したかどうかをチェックします。
サンプルコード2: アップロードしたファイルを削除する
$upload_directory = wp_upload_dir();
$file = 'my-uploaded-file.jpg';
$result = wp_delete_file_from_directory( $file, $upload_directory['basedir'] );
説明: ユーザーがアップロードした画像ファイルをメディアディレクトリから削除します。
サンプルコード3: ディレクトリ内の全ファイルを削除する
$directory = '/path/to/directory/';
$files = glob($directory . '*'); // ディレクトリ内の全ファイルを取得
foreach ($files as $file) {
wp_delete_file_from_directory($file, $directory);
}
説明: 指定したディレクトリの中にあるすべてのファイルを削除します。
サンプルコード4: 削除操作のログを記録
$file = 'temp.txt';
$directory = '/temp/';
if ( wp_delete_file_from_directory( $file, $directory ) ) {
error_log( "$file was deleted from $directory" );
} else {
error_log( "Failed to delete $file from $directory" );
}
説明: 指定したファイルを削除し、削除結果に基づいてログを記録します。
サンプルコード5: ユーザーがアカウントを削除した際にファイルを削除
function delete_user_files( $user_id ) {
$directory = "/user-files/$user_id/";
$files = glob($directory . '*');
foreach ($files as $file) {
wp_delete_file_from_directory($file, $directory);
}
}
add_action('delete_user', 'delete_user_files');
説明: ユーザーアカウントが削除された際に、そのユーザーに関連するファイルを全て削除します。