概要
wp_kses_post_deep
フィルタは、WordPressにおいて複数の投稿内容をサニタイズするために使用されます。一般には投稿やコンテンツ内のHTMLを安全な形式に整えるために利用され、主に以下のような機能実装でよく使用されます。
- 投稿の内容をHTMLエスケープする。
- 許可されたタグのみを保持する。
- 不正な属性を削除する。
- 特定のCSSスタイルを適用しないようにする。
- マルウェアや悪意のあるスクリプトを除去する。
- コメント内容のフィルタリング。
- フォームデータのサニタイズ。
- ユーザーによるコンテンツ入力の安全性を向上させる。
構文
add_filter('wp_kses_post_deep', 'your_custom_function');
パラメータ
array $data
: サニタイズ対象のデータ。array $allowed_html
: 許可されたHTMLタグと属性の配列。
戻り値
array
: サニタイズされたデータ。
関連する関数
使用可能なバージョン
- WordPress 4.4以降で使用可能。
コアファイルのパス
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: 簡単な投稿のサニタイズ
function sanitize_my_post($content) {
return wp_kses_post_deep($content);
}
add_filter('the_content', 'sanitize_my_post');
このコードは、投稿コンテンツを取得するときに wp_kses_post_deep
フィルタを使用して各投稿をサニタイズします。
サンプルコード2: カスタムフィールドのサニタイズ
function sanitize_my_custom_field($value) {
return wp_kses_post_deep($value);
}
add_filter('pre_update_post_meta', 'sanitize_my_custom_field');
このコードは、カスタムフィールドが更新される前に、wp_kses_post_deep
フィルタを適用し、サニタイズを行います。
サンプルコード3: コメントのサニタイズ
function sanitize_comment_text($comment) {
return wp_kses_post_deep($comment);
}
add_filter('preprocess_comment', 'sanitize_comment_text');
このコードは、ユーザーがコメントを投稿する際に、コメント内容をサニタイズします。
サンプルコード4: ショートコード出力のサニタイズ
function sanitize_shortcode_output($atts, $content = null) {
return wp_kses_post_deep($content);
}
add_shortcode('my_shortcode', 'sanitize_shortcode_output');
このコードは、ショートコードの出力内容を処理する際に、wp_kses_post_deep
フィルタを使用して安全な形式にサニタイズします。
サンプルコード5: ウィジェットテキストのサニタイズ
function sanitize_widget_text($instance) {
$instance['text'] = wp_kses_post_deep($instance['text']);
return $instance;
}
add_filter('widget_update_callback', 'sanitize_widget_text');
このコードは、ウィジェットのテキスト内容をサニタイズするために wp_kses_post_deep
を使用します。