概要
acf/options_page/save
アクションは、オプションページで保存を公開した後に発生します。このアクションは、オプションページからのデータが保存された後に他の処理を実行するために使用されます。主に以下のような機能を実装する際に利用されます。
- カスタムデータの検証
- データ保存後のキャッシュクリア
- 通知メールの送信
- 外部APIへのデータ送信
- ログの記録
- 他のプラグインとの連携
構文
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 |