wp_kses_post() の使い方|説明・引数・注意点

説明

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()、wp_strip_all_tags()

公式リファレンス:wp_kses_post() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました