acf_register_ajax()


WordPressのacf_register_ajax()関数は、ACF(Advanced Custom Fields)プラグインでカスタムAJAXリクエストを登録するために使用されます。この関数を使うことで、フロントエンドやバックエンドからカスタムAJAX処理を実行できます。

構文

acf_register_ajax( string $action, callable $callback );

引数の説明:

  • $action(string) — AJAXリクエストのアクション名を指定します。
  • $callback(callable) — AJAXリクエストが実行されたときに呼び出されるコールバック関数を指定します。

例1: 基本的なAJAXリクエストの登録

以下は、シンプルなAJAXリクエストを登録する例です。

acf_register_ajax('my_custom_action', 'my_custom_callback'); function my_custom_callback() { wp_send_json_success(array('message' => 'AJAX成功')); }

例2: フロントエンドからのAJAXリクエスト

フロントエンドからカスタムAJAXリクエストを送信する例です。

acf_register_ajax('frontend_action', 'frontend_callback'); function frontend_callback() { $data = $_POST['data']; wp_send_json_success(array('received_data' => $data)); }

例3: バックエンドからのAJAXリクエスト

バックエンドでAJAXリクエストを処理する例です。

acf_register_ajax('backend_action', 'backend_callback'); function backend_callback() { $post_id = $_POST['post_id']; $title = get_the_title($post_id); wp_send_json_success(array('post_title' => $title)); }

例4: エラーハンドリングを含むAJAXリクエスト

エラーハンドリングを追加したAJAXリクエストの例です。

acf_register_ajax('error_handling_action', 'error_handling_callback'); function error_handling_callback() { if (empty($_POST['data'])) { wp_send_json_error(array('message' => 'データがありません')); } wp_send_json_success(array('message' => 'データを受信しました')); }

例5: 複数のAJAXアクションを登録

複数のAJAXアクションを一度に登録する例です。

acf_register_ajax('action_one', 'callback_one'); acf_register_ajax('action_two', 'callback_two'); function callback_one() { wp_send_json_success(array('action' => 'action_one')); } function callback_two() { wp_send_json_success(array('action' => 'action_two')); }

注意点

  • AJAXリクエストを登録する際は、セキュリティ対策(例: nonceチェック)を必ず実施してください。
  • コールバック関数内でwp_send_json_success()wp_send_json_error()を使用して、適切なレスポンスを返すようにしてください。