rest_validate_enum()


WordPressのrest_validate_enum()関数は、指定された値が特定の列挙型(enum)に含まれているかどうかを検証するために使用されます。この関数はREST APIのバリデーション処理でよく利用されます。

構文

rest_validate_enum( mixed $value, WP_REST_Request $request, string $param );

引数の説明:

  • $value(mixed) — 検証する値。
  • $request(WP_REST_Request) — RESTリクエストオブジェクト。
  • $param(string) — 検証するパラメータ名。

例1: 基本的な列挙型の検証

この例では、値が指定された列挙型に含まれているかどうかを検証します。

$value = 'apple'; $request = new WP_REST_Request(); $param = 'fruit'; $enum = array('apple', 'banana', 'orange'); $result = rest_validate_enum($value, $request, $param);

例2: REST APIでの列挙型検証

REST APIのコールバック関数内で列挙型を検証する例です。

function my_rest_callback(WP_REST_Request $request) { $value = $request->get_param('fruit'); $enum = array('apple', 'banana', 'orange'); return rest_validate_enum($value, $request, 'fruit'); }

例3: 列挙型に含まれない値の検証

列挙型に含まれない値を検証し、エラーを返す例です。

$value = 'grape'; $request = new WP_REST_Request(); $param = 'fruit'; $enum = array('apple', 'banana', 'orange'); $result = rest_validate_enum($value, $request, $param);

例4: 列挙型の動的生成

動的に生成された列挙型を使用して検証する例です。

$value = 'blue'; $request = new WP_REST_Request(); $param = 'color'; $enum = array('red', 'green', 'blue'); $result = rest_validate_enum($value, $request, $param);

例5: 複数の列挙型を検証

複数の列挙型を一度に検証する例です。

$values = array('apple', 'banana'); $request = new WP_REST_Request(); $param = 'fruit'; $enum = array('apple', 'banana', 'orange'); foreach ($values as $value) { $result = rest_validate_enum($value, $request, $param); }

例6: 列挙型の検証結果を利用

検証結果に基づいて処理を分岐させる例です。

$value = 'apple'; $request = new WP_REST_Request(); $param = 'fruit'; $enum = array('apple', 'banana', 'orange'); if (rest_validate_enum($value, $request, $param)) { echo 'Valid fruit!'; } else { echo 'Invalid fruit!'; }

例7: 列挙型の検証とデフォルト値の設定

検証に失敗した場合にデフォルト値を設定する例です。

$value = 'grape'; $request = new WP_REST_Request(); $param = 'fruit'; $enum = array('apple', 'banana', 'orange'); $valid_value = rest_validate_enum($value, $request, $param) ? $value : 'apple';

注意点

  • 列挙型の値は厳密に比較されます。大文字と小文字は区別されます。
  • 検証に失敗した場合、rest_validate_enum()はfalseを返します。
  • REST APIのコンテキスト外で使用する場合、適切なリクエストオブジェクトを生成する必要があります。