説明
wp_kses_post() は、投稿本文で許可されているHTMLのみを残す関数です。
基本構文
wp_kses_post( string $data ): string
引数
$data:HTMLの文字列
戻り値
サニタイズ済みの文字列。
使い方(サンプル)
echo wp_kses_post( $content );
注意点
scriptやiframeなどは削除されます。- 投稿者などが入力するHTMLの出力に向いています。
実務での使いどころ
- エディターで入力された、HTMLを含む本文を、出力するとき。
- WYSIWYGのカスタムフィールドの値を、出力するとき。
よくあるミスと対処
<script>が残ると考えている。許可されていないタグは、取り除かれる。- 属性値の中に使っている。属性値には
esc_attr()を使う。 - テキストだけの値に使っている。テキストなら
esc_html()で十分。
NG例
echo $content; // エスケープがなく、<script> もそのまま出力される
OK例
echo wp_kses_post( $content );
使い分け早見表
| 出力する値 | 使う関数 |
|---|---|
| エディターのHTML(本文など) | wp_kses_post() |
| テキスト | esc_html() |
| 許可するタグを指定したい | wp_kses() |
関連項目
公式リファレンス:wp_kses_post() | Function | WordPress Developer Resources

コメント