wp_generate_attachment_metadata() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました