wp_unique_filename()


WordPressの関数wp_unique_filename()は、指定されたディレクトリ内で一意のファイル名を生成するために使用されます。この関数は、同じ名前のファイルが既に存在する場合に重複を避けるため、連番を付与した新しいファイル名を作成します。

構文

wp_unique_filename( string $dir, string $filename, callable $unique_filename_callback = null );

引数の説明:

  • $dir (string) — ファイルを保存するディレクトリのパス。
  • $filename (string) — 元のファイル名。
  • $unique_filename_callback (callable|null) — カスタムコールバック関数(オプション)。

使用例

例1: 基本的な使用法

ディレクトリ内で一意のファイル名を生成します。

<?php
$dir = wp_upload_dir()['path'];
$filename = 'example.txt';
$new_filename = wp_unique_filename( $dir, $filename );
echo $new_filename;
?>

例2: 新しい画像ファイル名を生成

アップロードディレクトリ内で画像ファイル名をチェックします。

<?php
$dir = wp_upload_dir()['path'];
$filename = 'image.png';
$new_filename = wp_unique_filename( $dir, $filename );
echo $new_filename;
?>

例3: カスタムコールバックを使用

コールバック関数を指定して一意の名前を生成します。

<?php
$dir = wp_upload_dir()['path'];
$filename = 'custom_file.docx';
$callback = function( $dir, $name ) {
    return 'custom_' . $name;
};
$new_filename = wp_unique_filename( $dir, $filename, $callback );
echo $new_filename;
?>

例4: ファイルが既に存在する場合

重複するファイル名がある場合、関数は連番を付けます。

<?php
$dir = wp_upload_dir()['path'];
$filename = 'duplicate.txt';
$new_filename = wp_unique_filename( $dir, $filename );
echo $new_filename; // duplicate-1.txt など
?>

例5: 特定のフォルダでの使用

別のディレクトリで一意のファイル名を生成します。

<?php
$dir = '/var/www/html/custom-uploads';
$filename = 'unique-file.txt';
$new_filename = wp_unique_filename( $dir, $filename );
echo $new_filename;
?>

注意事項

  • この関数は指定したディレクトリに基づいて動作します。そのため、ディレクトリのパスが正しいことを確認してください。
  • ディレクトリが存在しない場合、ファイル名は生成されません。
  • カスタムコールバックを使用する場合、適切なロジックを実装してください。

関連機能: