ワードプレスのwp_update_attachment_metadataアクションの使用方法・解説

概要

wp_update_attachment_metadataアクションは、メディア(添付ファイル)のメタ情報を更新する際に使用されます。このアクションは、メディアがアップロード・更新された後にそのメタ情報(例えば、画像のサイズやメタデータなど)を処理するために呼び出されます。具体的には、以下のような機能を実装する際に使用されることがよくあります。

  1. カスタムメタデータの保存
  2. 画像のサイズやフィルタリング条件の追加
  3. 特定のメディアタイプに対するメタ情報の操作
  4. メディアアップロード後の自動処理
  5. サムネイル生成後の情報更新
  6. メタ情報のアクションフックによる改善
  7. メディアのパフォーマンス最適化
  8. 追加フィールドの連携や更新

構文

do_action('wp_update_attachment_metadata', $attachment_id, $metadata);

パラメータ

  • $attachment_id: 更新されるメディアファイルのID。
  • $metadata: 更新後のメタ情報を含む配列。

戻り値

このアクション自体には戻り値はありませんが、フックされた関数内で実行する処理によって影響を与えます。

関連する関数

wp_update_attachment_metadata

このアクションを使用可能なバージョン

wp_update_attachment_metadataは、WordPress 3.1.0以降で利用可能です。

コアファイルのパス

wp-includes/media.php

この関数のアクションでの使用可能性

アクション名 使用可能性
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

サンプルコード

  1. カスタムフィールドを追加する
    メディアがアップロードされたときにカスタムフィールドを追加します。

    add_action('wp_update_attachment_metadata', 'add_custom_field_to_attachment', 10, 2);
    function add_custom_field_to_attachment($attachment_id, $metadata) {
       update_post_meta($attachment_id, 'custom_field', 'custom_value');
    }
    

    (引用元: https://developer.wordpress.org/reference/functions/add_action/)

  2. メタ情報に画像の色空間を追加
    メディアのメタ情報に色空間の情報を追加します。

    add_action('wp_update_attachment_metadata', 'add_color_space_to_metadata', 10, 2);
    function add_color_space_to_metadata($attachment_id, $metadata) {
       $metadata['color_space'] = 'RGB';
       return $metadata;
    }
    

    (引用元: https://developer.wordpress.org/reference/functions/add_action/)

  3. メタデータの処理を拡張
    メタデータに新しいサイズを追加する処理を記述します。

    add_action('wp_update_attachment_metadata', 'extend_metadata_with_custom_size', 10, 2);
    function extend_metadata_with_custom_size($attachment_id, $metadata) {
       $metadata['sizes']['custom_size'] = array(
           'file' => 'custom_size.jpg',
           'width' => 300,
           'height' => 200,
           'mime-type' => 'image/jpeg',
       );
       return $metadata;
    }
    

    (引用元: https://developer.wordpress.org/reference/functions/add_action/)

  4. メタ情報のバックアップ
    更新前のメタ情報をバックアップとして保存します。

    add_action('wp_update_attachment_metadata', 'backup_attachment_metadata', 10, 2);
    function backup_attachment_metadata($attachment_id, $metadata) {
       update_post_meta($attachment_id, 'backup_metadata', $metadata);
    }
    

    (引用元: https://developer.wordpress.org/reference/functions/add_action/)

  5. メタデータ更新時のログ
    メタデータが更新された際にログを出力します。

    add_action('wp_update_attachment_metadata', 'log_metadata_update', 10, 2);
    function log_metadata_update($attachment_id, $metadata) {
       error_log('メタデータが更新されました: ' . $attachment_id);
    }
    

    (引用元: https://developer.wordpress.org/reference/functions/add_action/)

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


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