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

概要

update_optionアクションは、WordPressでサイトオプションの値を更新する際にトリガーされます。このアクションは、特定のオプションが保存された直後に実行され、オプションの更新に依存するカスタム動作や処理を実装するためによく利用されます。例えば、オプションが変更された際に他のデータを再計算したり、キャッシュをクリアしたりするために使われます。

このアクションは、以下のような状況で一般的に使用されます:
1. サイト設定の変更
2. プラグインの設定更新
3. テーマのオプション管理
4. キャッシュの無効化
5. ログの記録
6. メール通知の送信
7. APIとの連携
8. デバッグのためのトリガー

構文

do_action('update_option', $option, $old_value, $value);

パラメータ

  • $option (string): 変更されたオプションの名前。
  • $old_value (mixed): オプションの旧値。
  • $value (mixed): 新しいオプションの値。

戻り値

update_optionアクション自体は戻り値を返しませんが、オプションの値の更新は成功したかどうかを示すブール値を持つupdate_option()関数が関数の結果となります。

関連する関数

https://refwp.com/?titleonly=1&s=update_option

使用可能なバージョン

update_optionアクションは、WordPressのバージョン 1.5 から利用可能です。

コアファイルのパス

wp-includes/option.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_option', 'log_option_change', 10, 3);

function log_option_change($option, $old_value, $value) {
    error_log("Option '{$option}' changed from '{$old_value}' to '{$value}'");
}

このコードは、オプションが変更されるたびに、その変更をエラーログに記録します。

サンプル 2: オプションの更新後にキャッシュをクリア

add_action('update_option', 'clear_my_cache', 10, 3);

function clear_my_cache($option, $old_value, $value) {
    if ($option == 'my_custom_option') {
        // キャッシュクリア処理
        my_cache_clear_function();
    }
}

このコードは、特定のオプションが更新されたときにキャッシュをクリアします。

サンプル 3: オプション更新後にWebhooksを送信

add_action('update_option', 'send_webhook_on_option_update', 10, 3);

function send_webhook_on_option_update($option, $old_value, $value) {
    $url = 'https://example.com/webhook';
    $data = array('option' => $option, 'old_value' => $old_value, 'new_value' => $value);

    wp_remote_post($url, array('body' => json_encode($data)));
}

このコードは、オプションが更新された際に指定したURLにWebhookを送信します。

サンプル 4: 自動バックアップを作成

add_action('update_option', 'backup_option_before_update', 10, 3);

function backup_option_before_update($option, $old_value, $value) {
    // バックアップ用の処理
    $backup_data = array('option' => $option, 'old_value' => $old_value);
    file_put_contents('backup.json', json_encode($backup_data), FILE_APPEND);
}

このコードは、オプション変更前のデータをバックアップファイルに保存します。

サンプル 5: 管理者に通知を送る

add_action('update_option', 'notify_admin_on_option_change', 10, 3);

function notify_admin_on_option_change($option, $old_value, $value) {
    if ($option == 'important_setting') {
        wp_mail('admin@example.com', 'Setting Changed', "The setting '{$option}' has changed from '{$old_value}' to '{$value}'.");
    }
}

このコードは、重要な設定が変更された際に管理者にメール通知を送信します。

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


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