説明
sanitize_html_class() は、HTMLのクラス名として使えない文字を取り除く関数です。
基本構文
sanitize_html_class( string $classname, string $fallback = '' ): string
引数
$classname:クラス名$fallback:無効な場合の代替値
戻り値
サニタイズ済みの文字列。
使い方(サンプル)
$cls = sanitize_html_class( $input );
注意点
class属性に動的な値を出力するときに使います。
実務での使いどころ
- ユーザーの入力やデータから、CSSのクラス名を作るとき。
よくあるミスと対処
- 複数のクラスを、スペース区切りで渡している。スペースが取り除かれ、1つの文字列になる。1つずつ整えて、つなげる。
- 出力時の、エスケープを省いている。属性値として出力するときは、
esc_attr()も通す。 - 使える文字は、英数字・ハイフン・アンダースコアのみ。
NG例
echo sanitize_html_class( 'btn btn-primary' ); // スペースが取り除かれ、「btnbtn-primary」になる
OK例
$classes = array( 'btn', $type );
echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $classes ) ) );
使い分け早見表
| 関数 | 使う場面 |
|---|---|
sanitize_html_class() |
クラス名を、使える文字だけに整える |
esc_attr() |
属性値として、出力する |
sanitize_key() |
キーとして、使える文字列に整える |
関連項目
公式リファレンス:sanitize_html_class() | Function | WordPress Developer Resources

コメント