Using WordPress ‘esc_textarea’ PHP filter

The esc_textarea WordPress PHP filter cleans and escapes text for output in a textarea element.

Usage

add_filter('esc_textarea', 'your_custom_function', 10, 2);
function your_custom_function($safe_text, $text) {
    // your custom code here
    return $safe_text;
}

Parameters

  • $safe_text (string) – The text after it has been escaped.
  • $text (string) – The text prior to being escaped.

More information

See WordPress Developer Resources: esc_textarea

Examples

Limit Text Length

Limit the number of characters displayed in the textarea to 200 characters.

add_filter('esc_textarea', 'limit_text_length', 10, 2);
function limit_text_length($safe_text, $text) {
    $limited_text = substr($safe_text, 0, 200);
    return $limited_text;
}

Replace URLs

Replace URLs within the textarea content with the text “Link removed”.

add_filter('esc_textarea', 'replace_urls', 10, 2);
function replace_urls($safe_text, $text) {
    $replaced_text = preg_replace('/(http|https):\/\/\S+/', 'Link removed', $safe_text);
    return $replaced_text;
}

Remove Line Breaks

Remove line breaks from the textarea content.

add_filter('esc_textarea', 'remove_line_breaks', 10, 2);
function remove_line_breaks($safe_text, $text) {
    $no_line_breaks = str_replace(array("\r\n", "\r", "\n"), '', $safe_text);
    return $no_line_breaks;
}

Convert hashtags in the textarea content to clickable links.

add_filter('esc_textarea', 'convert_hashtags_to_links', 10, 2);
function convert_hashtags_to_links($safe_text, $text) {
    $linked_hashtags = preg_replace('/#(\w+)/', '<a href="https://example.com/hashtag/$1">#$1</a>', $safe_text);
    return $linked_hashtags;
}

Add Custom Prefix

Add a custom prefix “Note: ” to the textarea content.

add_filter('esc_textarea', 'add_custom_prefix', 10, 2);
function add_custom_prefix($safe_text, $text) {
    $prefixed_text = 'Note: ' . $safe_text;
    return $prefixed_text;
}