内容を含めて<script>
タグを削除する方法はありますか?
wp_kses_postはタグを削除するだけで、その内容はページに表示されたままです。
ありがとうございました
KSESは、innerHTMLの表示を妨げるのではなく、望ましくない、潜在的に危険なタグの実行を防ぐように設計されています。コンテンツをブロックするには、
- 1コンテンツを削除するために何らかの文字列操作またはxmlDOM操作を使用したカスタム関数。または
- 2タグが含まれている投稿をブロックし、投稿が失敗した理由と、実行タグとしてではなくチュートリアルで使用するときにHTMLコードを使用してスクリプトタグをレンダリングするための手順をブロックする機能。
1番はオーバーヘッドが大きいため、パフォーマンスの問題が生じる可能性があります。パフォーマンスを最適化することが問題である場合、またはサイトに複数のユーザーによる投稿が多い場合は、#2がより現実的な解決策である可能性があります。
これが私のサイトで画像や段落タグを削除するために使用しているものです。これはthe_content
だと思いますか?
<?php
ob_start();
the_content();
$old_content = ob_get_clean();
$new_content = strip_tags($old_content, '<insert HTML tags you want kept');
echo $new_content; ?>
$new_content
行は、$old_content
の後にリストされているタグを除くすべてのHTMLタグを削除します。
投稿内容をフィルタリングするには、 preg_replace() を使用することをお勧めします。
add_filter('the_content', 'my_strip_scripts');
function my_strip_scripts($content){
return preg_replace('#<script(.*?)>(.*?)</script>#is', '', $content);
}
wp_strip_all_tags() を撃ってください。スクリプトタグの内容も削除されると思います。