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

概要

sanitize_option関数は、WordPress内でオプション値をサニタイズするための関数です。この関数は、ユーザーがデータを提供する際のセキュリティリスクを軽減するために、入力されたデータを検証し、不正なデータを排除します。具体的には、以下のようなシナリオで使用されることがよくあります。

  1. テーマやプラグインの設定値を保存するとき。
  2. ユーザーが管理画面から入力するオプション値を検証する際。
  3. データベースに保存される前に、オプション値の形式を整えるとき。
  4. 不正な文字列やスクリプトを排除する必要がある場合。
  5. フォーム入力から得られたデータを安全に保存する際。
  6. セキュリティ対策として、サニタイズされたデータを使用する場合。
  7. フィルターやアクションフックを使用する際の前処理。
  8. オプションページをカスタマイズする際に、ユーザー入力を適切に処理する場合。

構文

sanitize_option( $option, $value );

パラメータ

  • $option (string) – サニタイズ対象のオプションの名前。
  • $value (mixed) – サニタイズが行われる値。

戻り値

  • (mixed) – サニタイズされた値。

関連する関数

使用可能なバージョン

この関数はWordPressバージョン2.5以降で使用可能です。

コアファイルのパス

この関数は、wp-includes/option.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: 基本的なオプションのサニタイズ

$raw_value = $_POST['my_option'];
$sanitized_value = sanitize_option('my_option', $raw_value);

説明: フォームから送信された生のオプション値をサニタイズし、変数に格納します。これは、テーマやプラグインの設定値を保存する際に役立ちます。

サンプルコード2: サニタイズした値のデフォルト設定

function my_setting_update($option, $value) {
    return sanitize_option($option, $value);
}
add_filter('pre_update_option_my_option', 'my_setting_update', 10, 2);

説明: オプション更新時に、自動的にサニタイズを行うフィルターを追加します。

サンプルコード3: 配列値のサニタイズ

$raw_array = $_POST['my_options_array'];
$sanitized_array = array_map(function($value) {
    return sanitize_option('my_options', $value);
}, $raw_array);

説明: 配列形式のオプション値をサニタイズし、安全な形式で保存します。

サンプルコード4: URLのサニタイズ

$raw_url = $_POST['website_url'];
$sanitized_url = sanitize_option('website_url', esc_url($raw_url));

説明: URLをサニタイズする際に、esc_urlを使ってさらなる安全性を確保します。

サンプルコード5: 非サニタイズデータの除外

$raw_value = '<script>alert("test");</script>';
$sanitized_value = sanitize_option('my_option', $raw_value);
if ($sanitized_value !== $raw_value) {
    // 不正なデータが除外された場合の処理
}

説明: サニタイズされた結果をチェックし、不正なデータがあった場合の処理を追加します。

これらのサンプルコードは、WordPressでオプション値をサニタイズする際の一般的な手法を示しています。

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


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