ワードプレスのwp_unique_filename関数の使用方法・解説

概要

wp_unique_filename関数は、指定されたディレクトリ内で一意なファイル名を生成するために使用されます。この関数は、ファイルのアップロードや保存時にファイル名の重複を避けるためによく使われます。以下のような機能を実装する際によく用いられます。

  1. アップロードされた画像ファイルの名前の生成
  2. ユーザーがアップロードしたドキュメントの保存
  3. 添付ファイルの処理
  4. バージョン管理を考慮したファイル名の生成
  5. ファイルのリネーミング処理
  6. プラグインでのカスタムファイルの保存
  7. テーマでの画像やメディアファイルの管理
  8. 一時ファイルを作成する際のファイル名生成

構文

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

この関数について質問する


上の計算式の答えを入力してください