プラグインAdvanced custom fields(ACF)のacf/options_page/saveアクションの使用方法・解説

概要

acf/options_page/save アクションは、オプションページで保存を公開した後に発生します。このアクションは、オプションページからのデータが保存された後に他の処理を実行するために使用されます。主に以下のような機能を実装する際に利用されます。

  1. カスタムデータの検証
  2. データ保存後のキャッシュクリア
  3. 通知メールの送信
  4. 外部APIへのデータ送信
  5. ログの記録
  6. 他のプラグインとの連携

構文

add_action('acf/options_page/save', 'your_custom_function');

パラメータ

  • null: このアクションには特定のパラメータはありません。

戻り値

  • 戻り値は特にありませんが、このアクション内で独自の処理を実行し、必要に応じて値を返すことができます。

使用可能なバージョン

  • Advanced Custom Fields (ACF): バージョン5.0以降
  • WordPress: バージョン4.4以降

サンプルコード

サンプルコード1: データの検証と通知メールの送信

このコードは、オプションページのデータが保存された際に、特定の条件を満たす場合に通知メールを送信するサンプルです。

add_action('acf/options_page/save', 'send_notification_email');

function send_notification_email() {
    $field_value = get_field('your_field_name', 'option');

    if ($field_value) {
        wp_mail('your-email@example.com', 'オプションページが保存されました', '新しい設定が保存されました。');
    }
}

サンプルコード2: カスタムログの記録

このコードは、オプションページが保存された後にその内容をログファイルに記録します。

add_action('acf/options_page/save', 'log_options_page');

function log_options_page() {
    $options = get_fields('option');
    error_log(print_r($options, true), 3, '/path/to/your/logfile.log');
}

サンプルコード3: APIへのデータ送信

オプションページの保存時に外部APIにデータを送信する例です。

add_action('acf/options_page/save', 'send_data_to_api');

function send_data_to_api() {
    $data = get_fields('option');

    wp_remote_post('https://api.example.com/endpoint', [
        'body' => json_encode($data),
        'headers' => [
            'Content-Type' => 'application/json',
        ],
    ]);
}

サンプルコード4: キャッシュのクリア

このコードは、オプションページのデータが保存された後にキャッシュをクリアする例です。

add_action('acf/options_page/save', 'clear_cache');

function clear_cache() {
    // キャッシュクリア処理
    if (function_exists('wp_cache_flush')) {
        wp_cache_flush();
    }
}

サンプルコード5: フィルタの追加

オプションページが保存された後に特定のフィルタを追加する例です。

add_action('acf/options_page/save', 'add_custom_filter');

function add_custom_filter() {
    add_filter('the_content', 'custom_filter_function');
}

function custom_filter_function($content) {
    return $content . '<p>カスタムコンテンツが追加されました。</p>';
}

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

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

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


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