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

概要

sanitize_hex_color関数は、’#’のついた16進数のカラー値をサニタイズするためのWordPressの関数です。この関数は、ユーザーからの入力を検証し、安全で正しい形式に整える際に利用されます。主な用途は以下の通りです。

  1. カラーセレクターの入力値を検証する
  2. カスタムテーマやプラグインの設定での色の入力を安全に処理する
  3. データベースに保存する前にカラー値を整形する
  4. フロントエンドで表示する前にカラーコードをハンドリングする
  5. APIやAjaxリクエストでのカラー情報の取り扱い
  6. 管理画面でのデザイン設定のカラーピッカーからの入力をサニタイズ
  7. カスタムウィジェットでのカラー設定
  8. カラースキームの設定や編集際の入力値の検証

構文

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のカラー値のサニタイズに関しての実際の利用方法を示しています。

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


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