функция
since 5.6.0
rest_get_endpoint_args_for_schema()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
rest_get_endpoint_args_for_schema( array $schema, string $method = WP_REST_Server::CREATABLE ): array
Описание
Возвращает массив аргументов конечной точки на основе схемы элемента и метода конечной точки.
Параметры
$schema
array
обязательный
Полная JSON-схема конечной точки.
$method
string
необязательный
= WP_REST_Server::CREATABLE
HTTP-метод конечной точки. Для конечных точек CREATABLE аргументы проверяются на обязательные значения и могут использовать заданное значение по умолчанию; для конечных точек EDITABLE это не выполняется.
Возвращаемое значение
array
Исходный код
wp-includes/rest-api.php:3352
function rest_get_endpoint_args_for_schema( $schema, $method = WP_REST_Server::CREATABLE ) {
$schema_properties = ! empty( $schema['properties'] ) ? $schema['properties'] : array();
$endpoint_args = array();
$valid_schema_properties = rest_get_allowed_schema_keywords();
$valid_schema_properties = array_diff( $valid_schema_properties, array( 'default', 'required' ) );
foreach ( $schema_properties as $field_id => $params ) {
// Arguments specified as `readonly` are not allowed to be set.
if ( ! empty( $params['readonly'] ) ) {
continue;
}
$endpoint_args[ $field_id ] = array(
'validate_callback' => 'rest_validate_request_arg',
'sanitize_callback' => 'rest_sanitize_request_arg',
);
if ( WP_REST_Server::CREATABLE === $method && isset( $params['default'] ) ) {
$endpoint_args[ $field_id ]['default'] = $params['default'];
}
if ( WP_REST_Server::CREATABLE === $method && ! empty( $params['required'] ) ) {
$endpoint_args[ $field_id ]['required'] = true;
}
foreach ( $valid_schema_properties as $schema_prop ) {
if ( isset( $params[ $schema_prop ] ) ) {
$endpoint_args[ $field_id ][ $schema_prop ] = $params[ $schema_prop ];
}
}
// Merge in any options provided by the schema property.
if ( isset( $params['arg_options'] ) ) {
// Only use required / default from arg_options on CREATABLE endpoints.
if ( WP_REST_Server::CREATABLE !== $method ) {
$params['arg_options'] = array_diff_key(
$params['arg_options'],
array(
'required' => '',
'default' => '',
)
);
}
$endpoint_args[ $field_id ] = array_merge( $endpoint_args[ $field_id ], $params['arg_options'] );
}
}
return $endpoint_args;
}
История изменений
| Версия | Описание |
|---|---|
| 5.6.0 | Introduced. |

