sanitize_hex_color() の使い方|説明・引数・注意点

説明

sanitize_hex_color() は、16進数のカラーコード(#fff や #ffffff)を検証する関数です。

基本構文

sanitize_hex_color( string $color ): string|void

引数

  • $color:カラーコード

戻り値

サニタイズ済みの文字列。

使い方(サンプル)

$color = sanitize_hex_color( $input );

注意点

  • 不正な値は空文字ではなく null を返します。
  • 先頭の # が必要です。

実務での使いどころ

  • カラーピッカーなどから入力された、色の値を、検証するとき。
  • テーマのカスタマイザーで、色の設定を保存するとき(sanitize_callback)。

よくあるミスと対処

  • 不正な値では null、空文字では空文字が返る。確認せずに使う。
  • # を付けずに渡している。# 付きの値が、必要。
  • 色名(red など)を渡している。16進数の値だけが、対象。

NG例

update_option( 'my_color', sanitize_hex_color( $color ) ); // 不正な値では null が保存される

OK例

$color = sanitize_hex_color( wp_unslash( $_POST['color'] ) );
if ( $color ) {
	update_option( 'my_color', $color );
}

使い分け早見表

関数 役割
sanitize_hex_color() # 付きの16進数の色を、検証する(不正なら null)
sanitize_hex_color_no_hash() # なしの16進数の色を、検証する
sanitize_text_field() 1行のテキストを整える

関連項目

sanitize_text_field()

公式リファレンス:sanitize_hex_color() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました