ワードプレスのwp_kses_post関数の使用方法・解説

概要

wp_kses_post 関数は、WordPressにおいて特定のHTMLや短縮タグを許可しながら、投稿内容をサニタイズするために使用される便利な関数です。この関数は、ユーザーから入力されたデータや投稿の内容を処理する際に、セキュリティを考慮して不正なタグや属性を排除するために使われます。

この関数がよく使用される場面には、以下のようなものがあります。
1. ユーザーの投稿内容のサニタイズ
2. コメントのサニタイズ
3. ユーザープロファイルの説明の処理
4. プラグインのエントリーのフィルタリング
5. ウィジェット内のコンテンツの安全化
6. 特定のショートコードの出力の保護
7. カスタムフィールドのデータのサニタイズ
8. テーマのオプションでの入力値の安全化

構文

wp_kses_post( $data );

パラメータ

  • $data (string): サニタイズしたい投稿内容。これはユーザーからの入力やデータベースからの出力など、HTMLを含む文字列です。

戻り値

  • (string): サニタイズされた結果の文字列。指定されたタグと属性のみが残り、その他の不正な部分は削除されます。

関連する関数

使用可能なバージョン

wp_kses_post 関数は、WordPress 3.0 以降で利用可能です。

コアファイルのパス

この関数は、wp-includes/formatting.php に含まれています。

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1: 投稿内容のサニタイズ

$post_content = '<script>alert("XSS");</script><p>This is safe content.</p>';
$sanitized_content = wp_kses_post($post_content);
// 結果: '<p>This is safe content.</p>'

このコードは、ユーザーが入力した投稿内容から不正なスクリプトを排除し、安全な段落だけを残します。

サンプルコード 2: コメントの処理

$comment = '<strong>Hello World!</strong>';
$sanitized_comment = wp_kses_post($comment);
// 結果: '<strong>Hello World!</strong>'

ここでは、コメント内の強調タグをサニタイズすることなく残す例です。

サンプルコード 3: カスタムフィールドでの使用

$custom_field = '<div class="custom">Custom Data</div>';
$sanitized_field = wp_kses_post($custom_field);
// 結果: '<div class="custom">Custom Data</div>'

このコードでは、カスタムフィールドから不正なタグを排除せず、クラス属性を含むdivを許可します。

サンプルコード 4: ウィジェットでのサニタイズ

$widget_content = '<i>Italic Text</i>';
$safe_widget_content = wp_kses_post($widget_content);
// 結果: '<i>Italic Text</i>'

ウィジェット内のテキストのスタイルを保持しつつ、他の不正な部分を削除します。

サンプルコード 5: テーマオプションのサニタイズ

$theme_option = '<h1>Heading</h1>';
$sanitized_option = wp_kses_post($theme_option);
// 結果: '<h1>Heading</h1>'

テーマのオプション設定に保存されたデータを安全に処理する例です。

この関数について質問する


上の計算式の答えを入力してください