概要
sanitize_email
フィルタは、ユーザーから入力されたメールアドレスが正しい形式であることを確認し、メールアドレスとして無効な文字を除外するために使用されます。このフィルタは、以下のような機能を実装する際によく使われます:
- ユーザー登録フォームのバリデーション
- コメントフォームのメールアドレス検証
- プラグイン設定ページでのメールアドレスチェック
- ユーザープロフィールの更新時の検証
- ウェブサイトの管理通知設定
- メールマーケティングサービスとの連携
- メール送信機能の強化
- セキュリティ対策としてのユーザー入力のフィルタリング
このフィルタの構文は以下の通りです:
string sanitize_email( string $email, bool $strict = false );
パラメータ
$email
(string): 検証対象のメールアドレス。$strict
(bool): 厳密な検証を行うかどうか(初期値はfalse
)。
戻り値
- (string): 検証後のメールアドレス。無効な文字が削除された場合は、適切にサニタイズされたメールアドレスが返されます。
関連する関数
使用可能なバージョン
このフィルタは、WordPressのバージョン 2.0 以降で使用可能です。
コアファイルのパス
wp-includes/formatting.php
サンプルコード
サンプルコード 1
$email_input = 'example@example.com';
$sanitized_email = apply_filters('sanitize_email', $email_input);
説明: ユーザーから入力されたメールアドレスをサニタイズする基本的な使用例です。このコードは、入力されたメールアドレスをフィルタリングします。
サンプルコード 2
$email_input = 'user@domain.com <script>alert("xss")</script>';
$sanitized_email = apply_filters('sanitize_email', $email_input);
echo $sanitized_email; // 出力: user@domain.com
説明: Javascriptのスクリプトを含む不正なメールアドレスをサニタイズし、正常なメールアドレスのみを返します。
サンプルコード 3
function my_custom_email_sanitizer($email) {
return sanitize_email($email, true); // 厳密なサニタイズ
}
add_filter('sanitize_email', 'my_custom_email_sanitizer');
説明: カスタム関数を使用して、厳密なサニタイズを施す例です。この関数は、より厳格な基準でメールアドレスをサニタイズします。
サンプルコード 4
function validate_email_on_form_submission($email) {
$sanitized_email = apply_filters('sanitize_email', $email);
if (!is_email($sanitized_email)) {
return new WP_Error('invalid_email', '無効なメールアドレスです');
}
return $sanitized_email;
}
説明: フォーム送信時にメールアドレスを検証し、無効な場合にはエラーメッセージを返します。
サンプルコード 5
add_action('user_register', function ($user_id) {
$user_email = $_POST['user_email'];
$sanitized_email = apply_filters('sanitize_email', $user_email);
update_user_meta($user_id, 'sanitized_email', $sanitized_email);
});
説明: 新規ユーザー登録時に、ユーザーのメールアドレスをサニタイズし、メタデータとして保存する例です。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
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 |
非推奨または削除されたバージョン
現在のところ、sanitize_email
フィルタが特定のワードプレスバージョンで非推奨または削除された情報はありません。