rest_convert_error_to_response()


WordPressのrest_convert_error_to_response()関数は、REST APIエラーをレスポンスオブジェクトに変換するために使用されます。この関数は、エラーメッセージやステータスコードを含むレスポンスを生成します。

構文

rest_convert_error_to_response( WP_Error $error );
  • $error(WP_Error) — 変換するエラーオブジェクト。

例1: 基本的なエラーレスポンスの生成

この例では、シンプルなエラーレスポンスを生成します。

$error = new WP_Error( 'invalid_param', '無効なパラメータです。', array( 'status' => 400 ) ); echo rest_convert_error_to_response( $error );

例2: カスタムステータスコード付きのエラーレスポンス

カスタムステータスコードを指定してエラーレスポンスを生成します。

$error = new WP_Error( 'not_found', 'リソースが見つかりません。', array( 'status' => 404 ) ); echo rest_convert_error_to_response( $error );

例3: 複数のエラーメッセージを含むレスポンス

複数のエラーメッセージを含むレスポンスを生成します。

$error = new WP_Error(); $error->add( 'error_1', 'エラー1です。' ); $error->add( 'error_2', 'エラー2です。' ); echo rest_convert_error_to_response( $error );

例4: エラーレスポンスのJSON出力

エラーレスポンスをJSON形式で出力します。

$error = new WP_Error( 'server_error', 'サーバーエラーが発生しました。', array( 'status' => 500 ) ); wp_send_json( rest_convert_error_to_response( $error ) );

例5: エラーレスポンスのカスタムヘッダー

カスタムヘッダーを含むエラーレスポンスを生成します。

$error = new WP_Error( 'unauthorized', '認証が必要です。', array( 'status' => 401, 'headers' => array( 'WWW-Authenticate' => 'Basic realm="Restricted Area"' ) ) ); echo rest_convert_error_to_response( $error );

例6: エラーレスポンスのフィルタリング

エラーレスポンスをフィルタリングしてカスタマイズします。

add_filter( 'rest_pre_echo_response', function( $result, $server, $request ) { if ( is_wp_error( $result ) ) { $result = rest_convert_error_to_response( $result ); } return $result; }, 10, 3 );

例7: エラーレスポンスのロギング

エラーレスポンスをログに記録します。

$error = new WP_Error( 'db_error', 'データベースエラーが発生しました。', array( 'status' => 500 ) ); error_log( print_r( rest_convert_error_to_response( $error ), true ) );

注意点

  • エラーレスポンスを生成する際、ステータスコードやヘッダーを適切に設定することが重要です。
  • エラーメッセージはユーザーに表示されるため、わかりやすい内容にすることが推奨されます。
  • エラーレスポンスをログに記録する場合、機密情報が含まれないように注意が必要です。