WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need an alternative function to use with textareas in meta boxes instead of esc_textarea.

The problem is that when I use this function with textarea's it removes line breaks and paragraphs. Is there an alternative function that will keep the line breaks and paragraphs.

I have tried the validation reference page in the Codex but had no luck finding a function.

share|improve this question

esc_textarea shouldn't strip out newlines -- It's just a thin wrapper around htmlspecialchars: http://core.trac.wordpress.org/browser/tags/3.3.2/wp-includes/formatting.php#L2536

function esc_textarea( $text ) {
    $safe_text = htmlspecialchars( $text, ENT_QUOTES );
    return apply_filters( 'esc_textarea', $safe_text, $text );

That said, there are lots of options. What do you want your users to do have the ability to post? esc_html will escape all special characters (just like esc_textarea). esc_attr(strip_tags($stuff)); is a favorite combination of mine.

You should also have a look at the data validation page in the codex.

share|improve this answer

Sorry for the delay but this was the solution I used. Thanks for the feedback.

$value = esc_html($value);
$value = html_entity_decode($value);
share|improve this answer

I think you can use wpautop before esc_textarea, like this:

echo esc_textarea( wpautop( $value ) );
share|improve this answer
autop will insert HTML that esc_textarea will then escape (convert to character entities), so that's probably not going to work. – chrisguitarguy May 28 '12 at 15:24

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.