概要
update_metadata
アクションは、WordPressのメタ情報を更新する際に呼び出されるアクションフックです。このアクションは、カスタムフィールドやユーザーメタ情報などのメタデータが更新された後に実行され、メタデータの更新に関連する機能を実装する際に使用されます。よく使われるケースとしては以下のような場面があります。
- メタ情報の更新後に通知を送る
- 特定の条件下でのメタ情報のバリデーション
- 他のデータベーステーブルへの情報の同期
- 更新後にキャッシュをクリアする
- ログを記録して変更を監視する
- サードパーティサービスへのデータ送信
- メタ情報更新時にトリガーされるカスタム処理
- ユーザーインターフェイスへのフィードバックを表示する
構文
do_action('update_metadata', $meta_type, $object_id, $meta_key, $meta_value, $prev_value);
パラメータ
$meta_type
(string): メタデータが関連付けられているタイプ(例: ‘post’, ‘user’, ‘term’など)$object_id
(int): メタデータが関連付けられているオブジェクトのID$meta_key
(string): メタデータのキー$meta_value
(mixed): メタデータの新しい値$prev_value
(mixed): 以前のメタデータの値(省略可能)
戻り値
戻り値はなく、メタデータの更新後に実行する関数をフックします。
関連する関数
使用可能なバージョン
update_metadata
アクションはWordPress 2.9.0以降で使用可能です。
コアファイルのパス
wp-includes/meta.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('update_metadata', 'send_notification_on_meta_update', 10, 5);
function send_notification_on_meta_update($meta_type, $object_id, $meta_key, $meta_value, $prev_value) {
// メタ情報が更新されたときに通知を送信する処理
if ($meta_type === 'post') {
// ここに通知送信ロジックを追加
}
}
このコードは、メタ情報が更新された際に通知を送信する処理をフックしています。
サンプルコード2: メタ情報のバリデーション
add_action('update_metadata', 'validate_meta_value', 10, 5);
function validate_meta_value($meta_type, $object_id, $meta_key, $meta_value, $prev_value) {
if ($meta_key === 'example_meta_key' && !is_valid($meta_value)) {
// バリデーションエラーの処理
// エラーをスローしたり、デフォルト値に戻したり
}
}
このコードは、特定のメタキーの更新時にバリデーションを行う機能を実装しています。
サンプルコード3: メタ情報の更新後にキャッシュをクリアする
add_action('update_metadata', 'clear_cache_after_update', 10, 5);
function clear_cache_after_update($meta_type, $object_id, $meta_key, $meta_value, $prev_value) {
// メタ情報が更新された後にキャッシュをクリアする処理
wp_cache_delete($object_id, $meta_type);
}
このコードは、メタ情報が更新された後にキャッシュをクリアします。
サンプルコード4: ログを記録する
add_action('update_metadata', 'log_meta_update', 10, 5);
function log_meta_update($meta_type, $object_id, $meta_key, $meta_value, $prev_value) {
// メタ情報の更新をログに記録する処理
error_log("メタ情報が更新されました: [$meta_type] $object_id - $meta_key: $prev_value -> $meta_value");
}
このコードは、メタデータの変更をエラーログに記録します。
サンプルコード5: サードパーティサービスへのデータ送信
add_action('update_metadata', 'send_to_third_party_service', 10, 5);
function send_to_third_party_service($meta_type, $object_id, $meta_key, $meta_value, $prev_value) {
// メタ情報が更新されたときにサードパーティサービスにデータを送信する処理
if ($meta_key === 'interesting_meta_key') {
// サードパーティAPIへのリクエストをここに追加
}
}
このコードは、特定のメタへの更新が行われた際に、サードパーティサービスにデータを送信する処理を実行します。