概要
sanitize_hex_color
関数は、’#’のついた16進数のカラー値をサニタイズするためのWordPressの関数です。この関数は、ユーザーからの入力を検証し、安全で正しい形式に整える際に利用されます。主な用途は以下の通りです。
- カラーセレクターの入力値を検証する
- カスタムテーマやプラグインの設定での色の入力を安全に処理する
- データベースに保存する前にカラー値を整形する
- フロントエンドで表示する前にカラーコードをハンドリングする
- APIやAjaxリクエストでのカラー情報の取り扱い
- 管理画面でのデザイン設定のカラーピッカーからの入力をサニタイズ
- カスタムウィジェットでのカラー設定
- カラースキームの設定や編集際の入力値の検証
構文
sanitize_hex_color( $color );
パラメータ
$color
(string) : サニタイズするカラー値。’#’付きの16進数が想定される。
戻り値
- (string|null) : 検証されたカラー値。無効な場合は
null
が返される。
関連する関数
使用可能なバージョン
- WordPress 3.5.0以降
コアファイルのパス
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: サニタイズと表示
$color_input = '#ff5733'; // ユーザーからのカラー入力
$sanitized_color = sanitize_hex_color($color_input);
if ($sanitized_color) {
echo "選択した色は " . $sanitized_color . " です";
}
このサンプルは、ユーザーからの16進数のカラー値を受け取り、それをサニタイズして表示するものです。
サンプルコード2: デフォルトカラー設定
$default_color = '#000000';
$saved_color = get_option('custom_color') ?: $default_color;
$sanitized_color = sanitize_hex_color($saved_color);
このコードでは、データベースからカスタムカラーを取得し、デフォルト値からサニタイズされています。
サンプルコード3: ウィジェットでのカラー設定
function my_custom_widget($instance) {
$bg_color = sanitize_hex_color($instance['background_color']);
echo '<div style="background-color: ' . esc_attr($bg_color) . ';">内容</div>';
}
このサンプルでは、ウィジェット内で設定された背景色をサニタイズして適用しています。
サンプルコード4: フォームの保存
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$color_input = sanitize_hex_color($_POST['color']);
update_option('form_color', $color_input);
}
このコードは、フォームから送信されたカラー入力をサニタイズし、オプションとして保存します。
サンプルコード5: カラーピッカーの設定
function custom_theme_customize_register($wp_customize) {
$wp_customize->add_setting('theme_color', array(
'default' => '#ffffff',
'sanitize_callback' => 'sanitize_hex_color'
));
}
add_action('customize_register', 'custom_theme_customize_register');
このコードは、テーマカスタマイザーにカラー設定を追加し、その値をサニタイズコールバックとしてsanitize_hex_color
を使用しています。
これらのサンプルコードは、WordPressのカラー値のサニタイズに関しての実際の利用方法を示しています。