概要
wp_unique_filename
関数は、指定されたディレクトリ内で一意なファイル名を生成するために使用されます。この関数は、ファイルのアップロードや保存時にファイル名の重複を避けるためによく使われます。以下のような機能を実装する際によく用いられます。
- アップロードされた画像ファイルの名前の生成
- ユーザーがアップロードしたドキュメントの保存
- 添付ファイルの処理
- バージョン管理を考慮したファイル名の生成
- ファイルのリネーミング処理
- プラグインでのカスタムファイルの保存
- テーマでの画像やメディアファイルの管理
- 一時ファイルを作成する際のファイル名生成
構文
wp_unique_filename( $dir, $filename, $unique_filename_callback );
パラメータ
$dir
(string) : ファイルを保存するディレクトリのパス。$filename
(string) : 確認するファイル名。$unique_filename_callback
(callable | null) : 一意なファイル名を生成するためのコールバック関数 (オプション)。
戻り値
- (string) : 一意なファイル名。
関連する関数
ワードプレスのバージョン
この関数は、WordPressのバージョン2.0以降で利用可能です。特に非推奨や削除されたバージョンはありません。
コアファイルのパス
wp-includes/media.php
サンプルコード
サンプルコード1: 一意なファイル名の生成
$dir = '/path/to/upload/directory/';
$filename = 'my_image.jpg';
$unique_filename = wp_unique_filename( $dir, $filename );
echo $unique_filename; // 例: my_image-1.jpg
このサンプルコードは、指定したディレクトリにmy_image.jpg
というファイル名が既に存在する場合、一意なファイル名を生成して出力します。
サンプルコード2: コールバック関数を使用した例
function custom_unique_filename_callback( $filename ) {
return 'custom_' . $filename;
}
$dir = '/path/to/upload/directory/';
$filename = 'report.pdf';
$unique_filename = wp_unique_filename( $dir, $filename, 'custom_unique_filename_callback' );
echo $unique_filename; // 例: custom_report.pdf
このサンプルコードは、一意なファイル名を生成するのに、カスタムコールバック関数を使用しています。
サンプルコード3: ダイナミックなファイル名生成
$dir = '/path/to/uploads/';
$filename = 'new_file_' . time() . '.txt';
$unique_filename = wp_unique_filename( $dir, $filename );
echo $unique_filename; // 例: new_file_1638474878.txt
このサンプルコードでは、現在のタイムスタンプを利用して動的に新しいファイル名を生成し、一意なファイル名を作ります。
サンプルコード4: 画像アップロード時の使用例
if ( isset( $_FILES['uploaded_file'] ) ) {
$uploads_dir = wp_upload_dir();
$unique_filename = wp_unique_filename( $uploads_dir['path'], $_FILES['uploaded_file']['name'] );
// ファイルの保存処理
move_uploaded_file( $_FILES['uploaded_file']['tmp_name'], $uploads_dir['path'] . '/' . $unique_filename );
}
このサンプルコードは、ユーザーがアップロードした画像の file name に基づいて、一意なファイル名を生成し、指定したディレクトリに保存しています。
サンプルコード5: PHPのファイル処理における使用
$upload_dir = '/var/www/uploads/';
$file = 'data.csv';
$unique_file_name = wp_unique_filename( $upload_dir, $file );
$file_path = $upload_dir . $unique_file_name;
file_put_contents( $file_path, 'Your data here' );
echo "File saved: " . $unique_file_name;
このサンプルコードは、CSVファイルを特定のディレクトリに保存し、一意なファイル名を生成して表示します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |