wp_filter_nohtml_kses()


WordPress関数wp_filter_nohtml_kses()は、入力からすべてのHTMLタグを削除するために使用されます。

構文

wp_filter_nohtml_kses( string $data );
  • $data (string) — HTMLタグを削除したい文字列。

例1: 投稿内容のHTMLタグを削除

次のコードは、投稿内容からすべてのHTMLタグを削除して表示します。

<?php
$content = get_the_content();
$clean_content = wp_filter_nohtml_kses( $content );
echo $clean_content;
?>

例2: 入力フォームのデータをクリーンアップ

ユーザーが入力したデータを処理する際に、HTMLタグを削除します。

<?php
if ( isset( $_POST['user_input'] ) ) {
    $user_input = wp_filter_nohtml_kses( $_POST['user_input'] );
    echo $user_input;
}
?>

例3: カスタムメタデータのクリーニング

カスタムフィールドのデータを保存する前にHTMLタグを削除します。

<?php
$meta_value = get_post_meta( get_the_ID(), 'custom_field', true );
$clean_meta = wp_filter_nohtml_kses( $meta_value );
update_post_meta( get_the_ID(), 'custom_field', $clean_meta );
?>

例4: ユーザー入力の検証

フォーム入力を検証し、HTMLタグを削除したデータを使用します。

<?php
if ( isset( $_POST['comment'] ) ) {
    $comment = wp_filter_nohtml_kses( $_POST['comment'] );
    // コメントを保存
    wp_insert_comment( array(
        'comment_post_ID' => get_the_ID(),
        'comment_content' => $comment,
    ) );
}
?>

例5: オプション設定値のフィルタリング

保存されたオプション値を安全な形式で取得します。

<?php
$option_value = get_option( 'example_option' );
$clean_option = wp_filter_nohtml_kses( $option_value );
echo $clean_option;
?>

注意点

  • wp_filter_nohtml_kses()は、HTMLタグを完全に削除しますが、スクリプトインジェクションやその他の攻撃を防ぐためには追加の検証が必要な場合があります。
  • フィルタリング対象のデータがすでにHTMLを含むことを前提とする場合、この関数を使用すると意図しない結果を招く可能性があります。

関連機能: