概要
acf/input/form_data
は、ACF が各フォームに必要な非表示の入力を生成した後に発生するアクションです。このアクションは、フォームデータが出力される前に特定の処理を行うために使用されます。典型的な使用例としては、カスタムフィールドの値を修正したり、追加の入力要素を挿入したり、セキュリティトークンを追加したりすることがあります。
以下のような機能を実装する際によく使われます:
1. フォームのカスタマイズ
2. 特定条件下でのフィールドの表示制御
3. カスタムバリデーションの追加
4. トランスレーション要素の追加
5. セキュリティ対策の強化
6. フォーム送信後のデータ処理
構文
add_action('acf/input/form_data', 'your_function_name');
パラメータ
$form
: ACF フォームの情報を含む配列。
戻り値
このアクションには戻り値がなく、主に副作用に基づいて機能します。
対応するバージョン
- Advanced Custom Fields (ACF) バージョン: 5.0.0 以降
- WordPress バージョン: 4.0 以降
サンプルコード
サンプル1: フォームにカスタムCSSクラスを追加
このサンプルコードは、特定の条件に応じてフォームにカスタムクラスを追加します。
add_action('acf/input/form_data', function($form) {
$form['class'] .= ' my-custom-class';
});
サンプル2: フォームに特定のフィールドを追加
このサンプルは、フォームの中にカスタムフィールドを追加する方法を示しています。
add_action('acf/input/form_data', function($form) {
if($form['form_id'] == 'my_form') {
echo '<input type="hidden" name="my_hidden_field" value="some_value">';
}
});
サンプル3: フォーム送信時にデータを検証する
この例では、フォームが送信された際にカスタム検証を行います。
add_action('acf/input/form_data', function($form) {
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST['required_field'])) {
// エラーメッセージを表示
echo '<div class="error">Required field is empty</div>';
}
}
});
サンプル4: フォームにセキュリティトークンを追加
このコードは、CSRF対策としてフォームにセキュリティトークンを追加します。
add_action('acf/input/form_data', function($form) {
echo '<input type="hidden" name="security_token" value="' . wp_create_nonce('my_security_action') . '">';
});
サンプル5: フォーム表示前にデフォルト値を設定
このサンプルは、フォームが表示される前にデフォルト値を設定します。
add_action('acf/input/form_data', function($form) {
update_field('my_field', 'Default Value', $form['id']);
});
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |