wp_filter_kses()


WordPress関数wp_filter_kses()は、入力された内容をサニタイズし、安全なHTMLタグだけを許可するために使用されます。

シンタックス

wp_filter_kses( string $data );
  • $data (string) — サニタイズされる文字列。

例1: 入力されたデータをフィルタリングする

以下のコードは、投稿のカスタムフィールドから取得したデータをwp_filter_kses()でサニタイズします。

<?php
$custom_field_value = get_post_meta( get_the_ID(), 'custom_field_key', true );
$safe_value = wp_filter_kses( $custom_field_value );
echo $safe_value;
?>

例2: フォームの入力値を安全に処理する

フォームから送信されたデータをwp_filter_kses()で処理する例です。

<?php
if ( isset( $_POST['user_input'] ) ) {
    $safe_input = wp_filter_kses( $_POST['user_input'] );
    update_post_meta( get_the_ID(), 'user_input', $safe_input );
}
?>

例3: 配列内のデータをサニタイズする

複数のデータを一括でサニタイズする例です。

<?php
$data = array(
    'title' => '<h1>危険なタイトル</h1>',
    'content' => '<script>alert("危険なスクリプト");</script>'
);

$safe_data = array_map( 'wp_filter_kses', $data );
print_r( $safe_data );
?>

例4: 投稿のカスタムタイトルを安全に表示する

カスタムフィールドから取得したタイトルを表示する例です。

<?php
$title = get_post_meta( get_the_ID(), 'custom_title', true );
echo wp_filter_kses( $title );
?>

例5: 特定のユーザー入力を保存する前にサニタイズする

以下のコードは、ユーザーが送信したコメントデータを保存する前にwp_filter_kses()を使って処理します。

<?php
$comment_content = $_POST['comment'];
$safe_comment = wp_filter_kses( $comment_content );
wp_insert_comment( array( 'comment_content' => $safe_comment ) );
?>

注意点

  • wp_filter_kses()はHTMLタグの中でも安全とみなされたものだけを許可します。許可されないタグや属性は自動的に削除されます。
  • ユーザーからの入力をサニタイズする際にはwp_filter_kses()の使用を検討してください。
  • データベースに保存する前に、必ずサニタイズ処理を実施することを推奨します。

関連機能: