web-dev-qa-db-ja.com

Esc_textareaに代わるもの

私はesc_textareaの代わりにメタボックス内のテキストエリアで使用するための代替関数が必要です。

問題は、textareaでこの関数を使用すると、改行や段落が削除されることです。改行や段落を維持する代替機能はありますか。

私はCodexの検証のリファレンスページを試してみましたが、機能を見つけることができませんでした。

1
Colin Murphy

esc_textareaは改行を削除するべきではありません - 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 );
}

とは言っても、選択肢はたくさんあります。あなたはあなたのユーザーに何を投稿する能力を持たせたいですか? esc_html は、すべての特殊文字をエスケープします(esc_textareaと同様)。 esc_attr(strip_tags($stuff));は私のお気に入りの組み合わせです。

コーデックスの データ検証 ページもご覧ください。

2
chrisguitarguy

遅れてすみませんが、これが私が使った解決策でした。フィードバックをお寄せいただきありがとうございます。

$value = esc_html($value);
$value = html_entity_decode($value);
1
Colin Murphy

このように、esc_textareaの前に wpautop を使用できると思います。

echo esc_textarea( wpautop( $value ) );
0
Anh Tran