Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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
add comment

3 Answers 3

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

<?php
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
add comment

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

echo esc_textarea( wpautop( $value ) );
share|improve this answer
2  
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
add comment

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
add comment

Your Answer

 
discard

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.