ワードプレスのsanitize_text_field関数の使用方法・解説

概要

sanitize_text_field 関数は、ユーザーからの入力を安全に処理するために使用される重要な関数であり、特にHTMLやJavaScriptのコードが含まれている可能性のある文字列をサニタイズする際によく利用されます。この関数は、以下のようなシナリオで特に役立ちます:

  1. フォームのフィールドからの入力を処理する際
  2. データベースに保存する文字列をクリーンアップする際
  3. ユーザーが提供した情報を表示する前にサニタイズする際
  4. テーマやプラグインからの設定値を安全に取得する際
  5. REST API リクエストのデータを処理する際
  6. カスタムフィールドのデータをクリーンアップする際
  7. サードパーティサービスから取得したデータを安全に表示する際
  8. メール送信の際にユーザー入力を処理する際

構文

string sanitize_text_field( string $str )

パラメータ

  • $str (文字列): サニタイズしたい文字列。

戻り値

  • サニタイズされた文字列。

関連する関数

使用可能なバージョン

  • 早くから導入されており、現在もサポートされています。

コアファイルのパス

  • wp-includes/formatting.php

サンプルコード

サンプルコード1

$user_input = '<script>alert("Hello!");</script>';
$clean_input = sanitize_text_field($user_input);
echo $clean_input; // 結果は空文字列

説明: ユーザー入力に含まれるJavaScriptコードをサニタイズし、安全な文字列を取得します。この場合、スクリプトタグが削除され、結果は空になります。

サンプルコード2

$user_input = 'Hello, World!  <b>Bold Text</b>';
$clean_input = sanitize_text_field($user_input);
echo $clean_input; // 結果: Hello, World!  Bold Text

説明: ユーザーが提供したテキストからHTMLタグを除去し、サニタイズされた文字列を表示します。

サンプルコード3

$user_input = 'JohnDoe123';
$clean_input = sanitize_text_field($user_input);
if ($clean_input === $user_input) {
    echo '入力は安全です';
}

説明: 特殊文字が含まれない場合、サニタイズされた文字列が元の文字列と同じであることを確認します。

サンプルコード4

$user_input = 'user@example.com';
$clean_input = sanitize_text_field($user_input);
echo $clean_input; // 結果: user@example.com

説明: メールアドレスとしての正当な文字列は、サニタイズされた結果も同じになります。

サンプルコード5

$input_array = array(
    'name' => '<b>John</b>',
    'age' => '25',
);
$clean_input_array = array_map('sanitize_text_field', $input_array);
print_r($clean_input_array); // 結果: Array ( [name] => John [age] => 25 )

説明: 配列内のすべての要素に対して sanitize_text_field を適用し、サニタイズされた配列を作成します。

この関数のアクションでの使用可能性

アクション 使用可能性
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

非推奨または削除されたバージョン

  • 現在非推奨または削除されたバージョンはありません。

この関数について質問する


上の計算式の答えを入力してください