—
概要
admin-ajax.php を使ってフロントから Ajax リクエストを処理する例について解説します。このスニペットは、WordPressのフロントエンドで非同期通信を行いたい場合に役立ちます。
サンプルコード
// functions.php や個別のカスタムプラグインファイルに以下のコードを追加
add_action( 'wp_ajax_my_action', 'my_ajax_function' );
add_action( 'wp_ajax_nopriv_my_action', 'my_ajax_function' );
function my_ajax_function() {
// ここにAjaxリクエストを処理するためのコードを記述
$data = $_POST['data'];
// 必要な処理を行う
wp_send_json_success( $response ); // 成功時のレスポンス
wp_send_json_error( $error_message ); // エラー時のレスポンス
}
解説
- `wp_ajax_my_action` と `wp_ajax_nopriv_my_action` アクションフックを使って、Ajaxリクエストを受け付けるためのコールバック関数を登録します。
- `my_ajax_function` 関数内では、受け取ったAjaxリクエストを処理し、適切なレスポンスを返します。
- `$_POST['data']` を使って、Ajaxリクエストから送信されたデータを取得して処理することができます。
- `wp_send_json_success` 関数を使って、成功時のJSON形式のレスポンスを返すことができます。
- `wp_send_json_error` 関数を使って、エラー時のJSON形式のレスポンスを返すことができます。
ベストプラクティス
- Ajax処理のセキュリティを強化するために、nonce(ワンス)を使用してリクエストを検証することが推奨されます。
- Ajax処理が複雑になる場合は、処理を関数やクラスに分割して可読性と保守性を高めることが重要です。
—