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

概要

wp_strip_all_tags 関数は、文字列からHTMLタグを取り除くための関数であり、特にユーザーが入力した内容を安全に表示する際に役立ちます。この関数は、様々な場面で利用され、以下のような機能の実装時によく使われます。

  1. ユーザーコメントのフィルタリング
  2. 投稿の抜粋作成
  3. メタデータの保存
  4. ウェブサイトのSEO対策
  5. セキュリティ対策
  6. データベースに保存する前のクレンジング
  7. 管理画面のバリデーション
  8. APIレスポンスの整形

構文

string wp_strip_all_tags( string $str, bool $remove_empty = false );

パラメータ

  • $str (string) – HTMLタグを取り除く対象の文字列。
  • $remove_empty (bool) – 空のタグを削除するかどうかを指定します。デフォルトはfalseです。

戻り値

  • (string) – HTMLタグが取り除かれた文字列が返されます。

関連する関数

この関数を使用可能なバージョン

  • WordPress 2.9以降

コアファイルのパス

  • 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: HTMLタグを取り除く基本的な使用例

$str = '<h1>Hello World</h1><p>This is a <strong>test</strong>.</p>';
$clean_str = wp_strip_all_tags($str);
echo $clean_str; // 出力: Hello WorldThis is a test.

このサンプルコードは、HTMLタグを含む文字列からタグを取り除き、クリーンなテキストを出力します。

サンプル2: 空のタグを除去するオプションの使用例

$str = '<div>Content</div><p></p><span></span>';
$clean_str = wp_strip_all_tags($str, true);
echo $clean_str; // 出力: Content

このサンプルでは、空のタグも削除するオプションを指定して、純粋なコンテンツだけを残しています。

サンプル3: ユーザー入力をフィルタリングする例

$user_input = $_POST['comment'];
$safe_comment = wp_strip_all_tags($user_input);

この例は、ユーザーが投稿したコメントからHTMLタグを取り除き、セキュリティを強化しています。

サンプル4: 投稿の抜粋を生成する例

$content = '<h2>Post Title</h2><p>This is the content of the post.</p>';
$excerpt = wp_strip_all_tags($content);
echo $excerpt; // 出力: Post TitleThis is the content of the post.

このサンプルは、投稿内容からHTMLタグを取り除いて、抜粋を生成する際に使用されることを示しています。

サンプル5: APIレスポンスの整形

$raw_data = '<div><h3>Title</h3><p>Details about the item.</p></div>';
$clean_data = wp_strip_all_tags($raw_data);
$response = array('result' => $clean_data);
echo json_encode($response); // 出力: {"result":"TitleDetails about the item."}

このコードは、APIレスポンスを整形し、HTMLタグを取り除いたクリーンなデータをJSONフォーマットで返します。

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


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