esc_textarea()


関数 WordPressesc_textarea()— テキストエリアの出力をエスケープするために使用される関数です。この関数は、ユーザー入力の安全性を確保し、特定のHTML文字列が意図せず解釈されることを防ぎます。

シンタックス

esc_textarea( string $text );
  • $text (string) — エスケープする対象のテキスト。

例 1: テキストエリアの値をエスケープする

次のコードは、フォームのテキストエリアにユーザーが入力したデータをエスケープして表示します。

<?php
$input = $_POST['user_input'] ?? '';
echo '<textarea>' . esc_textarea( $input ) . '</textarea>';
?>

例 2: 投稿編集画面での使用

投稿のカスタムフィールドデータをテキストエリアに表示するときにエスケープします。

<?php
$custom_field = get_post_meta( get_the_ID(), 'custom_field_key', true );
echo '<textarea>' . esc_textarea( $custom_field ) . '</textarea>';
?>

例 3: ユーザー入力を保存する際のエスケープ

フォームから送信されたデータを保存する前にエスケープします。

<?php
if ( isset( $_POST['submit'] ) ) {
    $safe_data = esc_textarea( $_POST['text_input'] );
    update_post_meta( get_the_ID(), 'custom_field_key', $safe_data );
}
?>

例 4: REST API レスポンスでの使用

REST API エンドポイントでテキストデータをエスケープして返します。

<?php
add_action( 'rest_api_init', function() {
    register_rest_route( 'example/v1', '/data', array(
        'methods'  => 'GET',
        'callback' => function() {
            $data = get_option( 'some_option' );
            return esc_textarea( $data );
        }
    ) );
} );
?>

例 5: コメントデータの表示

ユーザーが送信したコメントを安全に表示する例です。

<?php
$comment_content = get_comment_text( $comment_id );
echo '<p>' . esc_textarea( $comment_content ) . '</p>';
?>

注意事項

  • esc_textarea()は、HTML文字列をエスケープするために設計されています。HTML以外のエスケープが必要な場合には他の関数を検討してください。
  • テキストエリアに直接出力する前にエスケープすることで、ユーザーの入力内容が意図せず解釈されるリスクを軽減します。

関連機能: