説明
wp_generate_attachment_metadata() は、画像の各サイズを生成し、メタデータを作成する関数です。
基本構文
wp_generate_attachment_metadata( int $attachment_id, string $file ): array
引数
$attachment_id:添付ファイルのID$file:ファイルのパス
戻り値
メタデータの配列。
使い方(サンプル)
require_once ABSPATH . 'wp-admin/includes/image.php';
$data = wp_generate_attachment_metadata( 45, get_attached_file( 45 ) );
注意点
wp-admin/includes/image.phpの読み込みが必要です。- 画像の再生成に時間がかかるため、大量に実行する場合は分割します。
実務での使いどころ
- プログラムで取り込んだ画像の、サムネイル(各サイズ)を、生成するとき。
- 画像のサイズを追加したあとに、既存の画像のサムネイルを、作り直すとき。
よくあるミスと対処
- メタデータを返すだけで、保存はされない。保存するには、
wp_update_attachment_metadata()を呼ぶ。 - フロント側の処理で、管理画面用のファイル(
wp-admin/includes/image.php)を読み込んでいない。関数が未定義になる。 - 画像の処理は重い。大量の画像を、一度に処理しない。
NG例
$meta = wp_generate_attachment_metadata( $id, $file ); // 保存していない
OK例
require_once ABSPATH . 'wp-admin/includes/image.php';
$meta = wp_generate_attachment_metadata( $id, $file );
wp_update_attachment_metadata( $id, $meta );
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_generate_attachment_metadata() |
サムネイルを生成し、メタデータを返す(保存はしない) |
wp_update_attachment_metadata() |
メタデータを保存する |
wp_insert_attachment() |
ファイルを、メディアとして登録する |
関連項目
wp_update_attachment_metadata()、wp_insert_attachment()
公式リファレンス:wp_generate_attachment_metadata() | Function | WordPress Developer Resources

コメント