Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-inclu...
File: rest-api.php
* @since 5.7.0
[2000] Fix | Delete
*
[2001] Fix | Delete
* @param mixed $value1 The first value to check.
[2002] Fix | Delete
* @param mixed $value2 The second value to check.
[2003] Fix | Delete
* @return bool True if the values are equal or false otherwise.
[2004] Fix | Delete
*/
[2005] Fix | Delete
function rest_are_values_equal( $value1, $value2 ) {
[2006] Fix | Delete
if ( is_array( $value1 ) && is_array( $value2 ) ) {
[2007] Fix | Delete
if ( count( $value1 ) !== count( $value2 ) ) {
[2008] Fix | Delete
return false;
[2009] Fix | Delete
}
[2010] Fix | Delete
[2011] Fix | Delete
foreach ( $value1 as $index => $value ) {
[2012] Fix | Delete
if ( ! array_key_exists( $index, $value2 ) || ! rest_are_values_equal( $value, $value2[ $index ] ) ) {
[2013] Fix | Delete
return false;
[2014] Fix | Delete
}
[2015] Fix | Delete
}
[2016] Fix | Delete
[2017] Fix | Delete
return true;
[2018] Fix | Delete
}
[2019] Fix | Delete
[2020] Fix | Delete
if ( is_int( $value1 ) && is_float( $value2 )
[2021] Fix | Delete
|| is_float( $value1 ) && is_int( $value2 )
[2022] Fix | Delete
) {
[2023] Fix | Delete
return (float) $value1 === (float) $value2;
[2024] Fix | Delete
}
[2025] Fix | Delete
[2026] Fix | Delete
return $value1 === $value2;
[2027] Fix | Delete
}
[2028] Fix | Delete
[2029] Fix | Delete
/**
[2030] Fix | Delete
* Validates that the given value is a member of the JSON Schema "enum".
[2031] Fix | Delete
*
[2032] Fix | Delete
* @since 5.7.0
[2033] Fix | Delete
*
[2034] Fix | Delete
* @param mixed $value The value to validate.
[2035] Fix | Delete
* @param array $args The schema array to use.
[2036] Fix | Delete
* @param string $param The parameter name, used in error messages.
[2037] Fix | Delete
* @return true|WP_Error True if the "enum" contains the value or a WP_Error instance otherwise.
[2038] Fix | Delete
*/
[2039] Fix | Delete
function rest_validate_enum( $value, $args, $param ) {
[2040] Fix | Delete
$sanitized_value = rest_sanitize_value_from_schema( $value, $args, $param );
[2041] Fix | Delete
if ( is_wp_error( $sanitized_value ) ) {
[2042] Fix | Delete
return $sanitized_value;
[2043] Fix | Delete
}
[2044] Fix | Delete
[2045] Fix | Delete
foreach ( $args['enum'] as $enum_value ) {
[2046] Fix | Delete
if ( rest_are_values_equal( $sanitized_value, $enum_value ) ) {
[2047] Fix | Delete
return true;
[2048] Fix | Delete
}
[2049] Fix | Delete
}
[2050] Fix | Delete
[2051] Fix | Delete
$encoded_enum_values = array();
[2052] Fix | Delete
foreach ( $args['enum'] as $enum_value ) {
[2053] Fix | Delete
$encoded_enum_values[] = is_scalar( $enum_value ) ? $enum_value : wp_json_encode( $enum_value );
[2054] Fix | Delete
}
[2055] Fix | Delete
[2056] Fix | Delete
if ( count( $encoded_enum_values ) === 1 ) {
[2057] Fix | Delete
/* translators: 1: Parameter, 2: Valid values. */
[2058] Fix | Delete
return new WP_Error( 'rest_not_in_enum', wp_sprintf( __( '%1$s is not %2$s.' ), $param, $encoded_enum_values[0] ) );
[2059] Fix | Delete
}
[2060] Fix | Delete
[2061] Fix | Delete
/* translators: 1: Parameter, 2: List of valid values. */
[2062] Fix | Delete
return new WP_Error( 'rest_not_in_enum', wp_sprintf( __( '%1$s is not one of %2$l.' ), $param, $encoded_enum_values ) );
[2063] Fix | Delete
}
[2064] Fix | Delete
[2065] Fix | Delete
/**
[2066] Fix | Delete
* Get all valid JSON schema properties.
[2067] Fix | Delete
*
[2068] Fix | Delete
* @since 5.6.0
[2069] Fix | Delete
*
[2070] Fix | Delete
* @return string[] All valid JSON schema properties.
[2071] Fix | Delete
*/
[2072] Fix | Delete
function rest_get_allowed_schema_keywords() {
[2073] Fix | Delete
return array(
[2074] Fix | Delete
'title',
[2075] Fix | Delete
'description',
[2076] Fix | Delete
'default',
[2077] Fix | Delete
'type',
[2078] Fix | Delete
'format',
[2079] Fix | Delete
'enum',
[2080] Fix | Delete
'items',
[2081] Fix | Delete
'properties',
[2082] Fix | Delete
'additionalProperties',
[2083] Fix | Delete
'patternProperties',
[2084] Fix | Delete
'minProperties',
[2085] Fix | Delete
'maxProperties',
[2086] Fix | Delete
'minimum',
[2087] Fix | Delete
'maximum',
[2088] Fix | Delete
'exclusiveMinimum',
[2089] Fix | Delete
'exclusiveMaximum',
[2090] Fix | Delete
'multipleOf',
[2091] Fix | Delete
'minLength',
[2092] Fix | Delete
'maxLength',
[2093] Fix | Delete
'pattern',
[2094] Fix | Delete
'minItems',
[2095] Fix | Delete
'maxItems',
[2096] Fix | Delete
'uniqueItems',
[2097] Fix | Delete
'anyOf',
[2098] Fix | Delete
'oneOf',
[2099] Fix | Delete
);
[2100] Fix | Delete
}
[2101] Fix | Delete
[2102] Fix | Delete
/**
[2103] Fix | Delete
* Validate a value based on a schema.
[2104] Fix | Delete
*
[2105] Fix | Delete
* @since 4.7.0
[2106] Fix | Delete
* @since 4.9.0 Support the "object" type.
[2107] Fix | Delete
* @since 5.2.0 Support validating "additionalProperties" against a schema.
[2108] Fix | Delete
* @since 5.3.0 Support multiple types.
[2109] Fix | Delete
* @since 5.4.0 Convert an empty string to an empty object.
[2110] Fix | Delete
* @since 5.5.0 Add the "uuid" and "hex-color" formats.
[2111] Fix | Delete
* Support the "minLength", "maxLength" and "pattern" keywords for strings.
[2112] Fix | Delete
* Support the "minItems", "maxItems" and "uniqueItems" keywords for arrays.
[2113] Fix | Delete
* Validate required properties.
[2114] Fix | Delete
* @since 5.6.0 Support the "minProperties" and "maxProperties" keywords for objects.
[2115] Fix | Delete
* Support the "multipleOf" keyword for numbers and integers.
[2116] Fix | Delete
* Support the "patternProperties" keyword for objects.
[2117] Fix | Delete
* Support the "anyOf" and "oneOf" keywords.
[2118] Fix | Delete
*
[2119] Fix | Delete
* @param mixed $value The value to validate.
[2120] Fix | Delete
* @param array $args Schema array to use for validation.
[2121] Fix | Delete
* @param string $param The parameter name, used in error messages.
[2122] Fix | Delete
* @return true|WP_Error
[2123] Fix | Delete
*/
[2124] Fix | Delete
function rest_validate_value_from_schema( $value, $args, $param = '' ) {
[2125] Fix | Delete
if ( isset( $args['anyOf'] ) ) {
[2126] Fix | Delete
$matching_schema = rest_find_any_matching_schema( $value, $args, $param );
[2127] Fix | Delete
if ( is_wp_error( $matching_schema ) ) {
[2128] Fix | Delete
return $matching_schema;
[2129] Fix | Delete
}
[2130] Fix | Delete
[2131] Fix | Delete
if ( ! isset( $args['type'] ) && isset( $matching_schema['type'] ) ) {
[2132] Fix | Delete
$args['type'] = $matching_schema['type'];
[2133] Fix | Delete
}
[2134] Fix | Delete
}
[2135] Fix | Delete
[2136] Fix | Delete
if ( isset( $args['oneOf'] ) ) {
[2137] Fix | Delete
$matching_schema = rest_find_one_matching_schema( $value, $args, $param );
[2138] Fix | Delete
if ( is_wp_error( $matching_schema ) ) {
[2139] Fix | Delete
return $matching_schema;
[2140] Fix | Delete
}
[2141] Fix | Delete
[2142] Fix | Delete
if ( ! isset( $args['type'] ) && isset( $matching_schema['type'] ) ) {
[2143] Fix | Delete
$args['type'] = $matching_schema['type'];
[2144] Fix | Delete
}
[2145] Fix | Delete
}
[2146] Fix | Delete
[2147] Fix | Delete
$allowed_types = array( 'array', 'object', 'string', 'number', 'integer', 'boolean', 'null' );
[2148] Fix | Delete
[2149] Fix | Delete
if ( ! isset( $args['type'] ) ) {
[2150] Fix | Delete
/* translators: %s: Parameter. */
[2151] Fix | Delete
_doing_it_wrong( __FUNCTION__, sprintf( __( 'The "type" schema keyword for %s is required.' ), $param ), '5.5.0' );
[2152] Fix | Delete
}
[2153] Fix | Delete
[2154] Fix | Delete
if ( is_array( $args['type'] ) ) {
[2155] Fix | Delete
$best_type = rest_handle_multi_type_schema( $value, $args, $param );
[2156] Fix | Delete
[2157] Fix | Delete
if ( ! $best_type ) {
[2158] Fix | Delete
return new WP_Error(
[2159] Fix | Delete
'rest_invalid_type',
[2160] Fix | Delete
/* translators: 1: Parameter, 2: List of types. */
[2161] Fix | Delete
sprintf( __( '%1$s is not of type %2$s.' ), $param, implode( ',', $args['type'] ) ),
[2162] Fix | Delete
array( 'param' => $param )
[2163] Fix | Delete
);
[2164] Fix | Delete
}
[2165] Fix | Delete
[2166] Fix | Delete
$args['type'] = $best_type;
[2167] Fix | Delete
}
[2168] Fix | Delete
[2169] Fix | Delete
if ( ! in_array( $args['type'], $allowed_types, true ) ) {
[2170] Fix | Delete
_doing_it_wrong(
[2171] Fix | Delete
__FUNCTION__,
[2172] Fix | Delete
/* translators: 1: Parameter, 2: The list of allowed types. */
[2173] Fix | Delete
wp_sprintf( __( 'The "type" schema keyword for %1$s can only be one of the built-in types: %2$l.' ), $param, $allowed_types ),
[2174] Fix | Delete
'5.5.0'
[2175] Fix | Delete
);
[2176] Fix | Delete
}
[2177] Fix | Delete
[2178] Fix | Delete
switch ( $args['type'] ) {
[2179] Fix | Delete
case 'null':
[2180] Fix | Delete
$is_valid = rest_validate_null_value_from_schema( $value, $param );
[2181] Fix | Delete
break;
[2182] Fix | Delete
case 'boolean':
[2183] Fix | Delete
$is_valid = rest_validate_boolean_value_from_schema( $value, $param );
[2184] Fix | Delete
break;
[2185] Fix | Delete
case 'object':
[2186] Fix | Delete
$is_valid = rest_validate_object_value_from_schema( $value, $args, $param );
[2187] Fix | Delete
break;
[2188] Fix | Delete
case 'array':
[2189] Fix | Delete
$is_valid = rest_validate_array_value_from_schema( $value, $args, $param );
[2190] Fix | Delete
break;
[2191] Fix | Delete
case 'number':
[2192] Fix | Delete
$is_valid = rest_validate_number_value_from_schema( $value, $args, $param );
[2193] Fix | Delete
break;
[2194] Fix | Delete
case 'string':
[2195] Fix | Delete
$is_valid = rest_validate_string_value_from_schema( $value, $args, $param );
[2196] Fix | Delete
break;
[2197] Fix | Delete
case 'integer':
[2198] Fix | Delete
$is_valid = rest_validate_integer_value_from_schema( $value, $args, $param );
[2199] Fix | Delete
break;
[2200] Fix | Delete
default:
[2201] Fix | Delete
$is_valid = true;
[2202] Fix | Delete
break;
[2203] Fix | Delete
}
[2204] Fix | Delete
[2205] Fix | Delete
if ( is_wp_error( $is_valid ) ) {
[2206] Fix | Delete
return $is_valid;
[2207] Fix | Delete
}
[2208] Fix | Delete
[2209] Fix | Delete
if ( ! empty( $args['enum'] ) ) {
[2210] Fix | Delete
$enum_contains_value = rest_validate_enum( $value, $args, $param );
[2211] Fix | Delete
if ( is_wp_error( $enum_contains_value ) ) {
[2212] Fix | Delete
return $enum_contains_value;
[2213] Fix | Delete
}
[2214] Fix | Delete
}
[2215] Fix | Delete
[2216] Fix | Delete
/*
[2217] Fix | Delete
* The "format" keyword should only be applied to strings. However, for backward compatibility,
[2218] Fix | Delete
* we allow the "format" keyword if the type keyword was not specified, or was set to an invalid value.
[2219] Fix | Delete
*/
[2220] Fix | Delete
if ( isset( $args['format'] )
[2221] Fix | Delete
&& ( ! isset( $args['type'] ) || 'string' === $args['type'] || ! in_array( $args['type'], $allowed_types, true ) )
[2222] Fix | Delete
) {
[2223] Fix | Delete
switch ( $args['format'] ) {
[2224] Fix | Delete
case 'hex-color':
[2225] Fix | Delete
if ( ! rest_parse_hex_color( $value ) ) {
[2226] Fix | Delete
return new WP_Error( 'rest_invalid_hex_color', __( 'Invalid hex color.' ) );
[2227] Fix | Delete
}
[2228] Fix | Delete
break;
[2229] Fix | Delete
[2230] Fix | Delete
case 'date-time':
[2231] Fix | Delete
if ( ! rest_parse_date( $value ) ) {
[2232] Fix | Delete
return new WP_Error( 'rest_invalid_date', __( 'Invalid date.' ) );
[2233] Fix | Delete
}
[2234] Fix | Delete
break;
[2235] Fix | Delete
[2236] Fix | Delete
case 'email':
[2237] Fix | Delete
if ( ! is_email( $value ) ) {
[2238] Fix | Delete
return new WP_Error( 'rest_invalid_email', __( 'Invalid email address.' ) );
[2239] Fix | Delete
}
[2240] Fix | Delete
break;
[2241] Fix | Delete
case 'ip':
[2242] Fix | Delete
if ( ! rest_is_ip_address( $value ) ) {
[2243] Fix | Delete
/* translators: %s: IP address. */
[2244] Fix | Delete
return new WP_Error( 'rest_invalid_ip', sprintf( __( '%s is not a valid IP address.' ), $param ) );
[2245] Fix | Delete
}
[2246] Fix | Delete
break;
[2247] Fix | Delete
case 'uuid':
[2248] Fix | Delete
if ( ! wp_is_uuid( $value ) ) {
[2249] Fix | Delete
/* translators: %s: The name of a JSON field expecting a valid UUID. */
[2250] Fix | Delete
return new WP_Error( 'rest_invalid_uuid', sprintf( __( '%s is not a valid UUID.' ), $param ) );
[2251] Fix | Delete
}
[2252] Fix | Delete
break;
[2253] Fix | Delete
}
[2254] Fix | Delete
}
[2255] Fix | Delete
[2256] Fix | Delete
return true;
[2257] Fix | Delete
}
[2258] Fix | Delete
[2259] Fix | Delete
/**
[2260] Fix | Delete
* Validates a null value based on a schema.
[2261] Fix | Delete
*
[2262] Fix | Delete
* @since 5.7.0
[2263] Fix | Delete
*
[2264] Fix | Delete
* @param mixed $value The value to validate.
[2265] Fix | Delete
* @param string $param The parameter name, used in error messages.
[2266] Fix | Delete
* @return true|WP_Error
[2267] Fix | Delete
*/
[2268] Fix | Delete
function rest_validate_null_value_from_schema( $value, $param ) {
[2269] Fix | Delete
if ( null !== $value ) {
[2270] Fix | Delete
return new WP_Error(
[2271] Fix | Delete
'rest_invalid_type',
[2272] Fix | Delete
/* translators: 1: Parameter, 2: Type name. */
[2273] Fix | Delete
sprintf( __( '%1$s is not of type %2$s.' ), $param, 'null' ),
[2274] Fix | Delete
array( 'param' => $param )
[2275] Fix | Delete
);
[2276] Fix | Delete
}
[2277] Fix | Delete
[2278] Fix | Delete
return true;
[2279] Fix | Delete
}
[2280] Fix | Delete
[2281] Fix | Delete
/**
[2282] Fix | Delete
* Validates a boolean value based on a schema.
[2283] Fix | Delete
*
[2284] Fix | Delete
* @since 5.7.0
[2285] Fix | Delete
*
[2286] Fix | Delete
* @param mixed $value The value to validate.
[2287] Fix | Delete
* @param string $param The parameter name, used in error messages.
[2288] Fix | Delete
* @return true|WP_Error
[2289] Fix | Delete
*/
[2290] Fix | Delete
function rest_validate_boolean_value_from_schema( $value, $param ) {
[2291] Fix | Delete
if ( ! rest_is_boolean( $value ) ) {
[2292] Fix | Delete
return new WP_Error(
[2293] Fix | Delete
'rest_invalid_type',
[2294] Fix | Delete
/* translators: 1: Parameter, 2: Type name. */
[2295] Fix | Delete
sprintf( __( '%1$s is not of type %2$s.' ), $param, 'boolean' ),
[2296] Fix | Delete
array( 'param' => $param )
[2297] Fix | Delete
);
[2298] Fix | Delete
}
[2299] Fix | Delete
[2300] Fix | Delete
return true;
[2301] Fix | Delete
}
[2302] Fix | Delete
[2303] Fix | Delete
/**
[2304] Fix | Delete
* Validates an object value based on a schema.
[2305] Fix | Delete
*
[2306] Fix | Delete
* @since 5.7.0
[2307] Fix | Delete
*
[2308] Fix | Delete
* @param mixed $value The value to validate.
[2309] Fix | Delete
* @param array $args Schema array to use for validation.
[2310] Fix | Delete
* @param string $param The parameter name, used in error messages.
[2311] Fix | Delete
* @return true|WP_Error
[2312] Fix | Delete
*/
[2313] Fix | Delete
function rest_validate_object_value_from_schema( $value, $args, $param ) {
[2314] Fix | Delete
if ( ! rest_is_object( $value ) ) {
[2315] Fix | Delete
return new WP_Error(
[2316] Fix | Delete
'rest_invalid_type',
[2317] Fix | Delete
/* translators: 1: Parameter, 2: Type name. */
[2318] Fix | Delete
sprintf( __( '%1$s is not of type %2$s.' ), $param, 'object' ),
[2319] Fix | Delete
array( 'param' => $param )
[2320] Fix | Delete
);
[2321] Fix | Delete
}
[2322] Fix | Delete
[2323] Fix | Delete
$value = rest_sanitize_object( $value );
[2324] Fix | Delete
[2325] Fix | Delete
if ( isset( $args['required'] ) && is_array( $args['required'] ) ) { // schema version 4
[2326] Fix | Delete
foreach ( $args['required'] as $name ) {
[2327] Fix | Delete
if ( ! array_key_exists( $name, $value ) ) {
[2328] Fix | Delete
return new WP_Error(
[2329] Fix | Delete
'rest_property_required',
[2330] Fix | Delete
/* translators: 1: Property of an object, 2: Parameter. */
[2331] Fix | Delete
sprintf( __( '%1$s is a required property of %2$s.' ), $name, $param )
[2332] Fix | Delete
);
[2333] Fix | Delete
}
[2334] Fix | Delete
}
[2335] Fix | Delete
} elseif ( isset( $args['properties'] ) ) { // schema version 3
[2336] Fix | Delete
foreach ( $args['properties'] as $name => $property ) {
[2337] Fix | Delete
if ( isset( $property['required'] ) && true === $property['required'] && ! array_key_exists( $name, $value ) ) {
[2338] Fix | Delete
return new WP_Error(
[2339] Fix | Delete
'rest_property_required',
[2340] Fix | Delete
/* translators: 1: Property of an object, 2: Parameter. */
[2341] Fix | Delete
sprintf( __( '%1$s is a required property of %2$s.' ), $name, $param )
[2342] Fix | Delete
);
[2343] Fix | Delete
}
[2344] Fix | Delete
}
[2345] Fix | Delete
}
[2346] Fix | Delete
[2347] Fix | Delete
foreach ( $value as $property => $v ) {
[2348] Fix | Delete
if ( isset( $args['properties'][ $property ] ) ) {
[2349] Fix | Delete
$is_valid = rest_validate_value_from_schema( $v, $args['properties'][ $property ], $param . '[' . $property . ']' );
[2350] Fix | Delete
if ( is_wp_error( $is_valid ) ) {
[2351] Fix | Delete
return $is_valid;
[2352] Fix | Delete
}
[2353] Fix | Delete
continue;
[2354] Fix | Delete
}
[2355] Fix | Delete
[2356] Fix | Delete
$pattern_property_schema = rest_find_matching_pattern_property_schema( $property, $args );
[2357] Fix | Delete
if ( null !== $pattern_property_schema ) {
[2358] Fix | Delete
$is_valid = rest_validate_value_from_schema( $v, $pattern_property_schema, $param . '[' . $property . ']' );
[2359] Fix | Delete
if ( is_wp_error( $is_valid ) ) {
[2360] Fix | Delete
return $is_valid;
[2361] Fix | Delete
}
[2362] Fix | Delete
continue;
[2363] Fix | Delete
}
[2364] Fix | Delete
[2365] Fix | Delete
if ( isset( $args['additionalProperties'] ) ) {
[2366] Fix | Delete
if ( false === $args['additionalProperties'] ) {
[2367] Fix | Delete
return new WP_Error(
[2368] Fix | Delete
'rest_additional_properties_forbidden',
[2369] Fix | Delete
/* translators: %s: Property of an object. */
[2370] Fix | Delete
sprintf( __( '%1$s is not a valid property of Object.' ), $property )
[2371] Fix | Delete
);
[2372] Fix | Delete
}
[2373] Fix | Delete
[2374] Fix | Delete
if ( is_array( $args['additionalProperties'] ) ) {
[2375] Fix | Delete
$is_valid = rest_validate_value_from_schema( $v, $args['additionalProperties'], $param . '[' . $property . ']' );
[2376] Fix | Delete
if ( is_wp_error( $is_valid ) ) {
[2377] Fix | Delete
return $is_valid;
[2378] Fix | Delete
}
[2379] Fix | Delete
}
[2380] Fix | Delete
}
[2381] Fix | Delete
}
[2382] Fix | Delete
[2383] Fix | Delete
if ( isset( $args['minProperties'] ) && count( $value ) < $args['minProperties'] ) {
[2384] Fix | Delete
return new WP_Error(
[2385] Fix | Delete
'rest_too_few_properties',
[2386] Fix | Delete
sprintf(
[2387] Fix | Delete
/* translators: 1: Parameter, 2: Number. */
[2388] Fix | Delete
_n(
[2389] Fix | Delete
'%1$s must contain at least %2$s property.',
[2390] Fix | Delete
'%1$s must contain at least %2$s properties.',
[2391] Fix | Delete
$args['minProperties']
[2392] Fix | Delete
),
[2393] Fix | Delete
$param,
[2394] Fix | Delete
number_format_i18n( $args['minProperties'] )
[2395] Fix | Delete
)
[2396] Fix | Delete
);
[2397] Fix | Delete
}
[2398] Fix | Delete
[2399] Fix | Delete
if ( isset( $args['maxProperties'] ) && count( $value ) > $args['maxProperties'] ) {
[2400] Fix | Delete
return new WP_Error(
[2401] Fix | Delete
'rest_too_many_properties',
[2402] Fix | Delete
sprintf(
[2403] Fix | Delete
/* translators: 1: Parameter, 2: Number. */
[2404] Fix | Delete
_n(
[2405] Fix | Delete
'%1$s must contain at most %2$s property.',
[2406] Fix | Delete
'%1$s must contain at most %2$s properties.',
[2407] Fix | Delete
$args['maxProperties']
[2408] Fix | Delete
),
[2409] Fix | Delete
$param,
[2410] Fix | Delete
number_format_i18n( $args['maxProperties'] )
[2411] Fix | Delete
)
[2412] Fix | Delete
);
[2413] Fix | Delete
}
[2414] Fix | Delete
[2415] Fix | Delete
return true;
[2416] Fix | Delete
}
[2417] Fix | Delete
[2418] Fix | Delete
/**
[2419] Fix | Delete
* Validates an array value based on a schema.
[2420] Fix | Delete
*
[2421] Fix | Delete
* @since 5.7.0
[2422] Fix | Delete
*
[2423] Fix | Delete
* @param mixed $value The value to validate.
[2424] Fix | Delete
* @param array $args Schema array to use for validation.
[2425] Fix | Delete
* @param string $param The parameter name, used in error messages.
[2426] Fix | Delete
* @return true|WP_Error
[2427] Fix | Delete
*/
[2428] Fix | Delete
function rest_validate_array_value_from_schema( $value, $args, $param ) {
[2429] Fix | Delete
if ( ! rest_is_array( $value ) ) {
[2430] Fix | Delete
return new WP_Error(
[2431] Fix | Delete
'rest_invalid_type',
[2432] Fix | Delete
/* translators: 1: Parameter, 2: Type name. */
[2433] Fix | Delete
sprintf( __( '%1$s is not of type %2$s.' ), $param, 'array' ),
[2434] Fix | Delete
array( 'param' => $param )
[2435] Fix | Delete
);
[2436] Fix | Delete
}
[2437] Fix | Delete
[2438] Fix | Delete
$value = rest_sanitize_array( $value );
[2439] Fix | Delete
[2440] Fix | Delete
if ( isset( $args['items'] ) ) {
[2441] Fix | Delete
foreach ( $value as $index => $v ) {
[2442] Fix | Delete
$is_valid = rest_validate_value_from_schema( $v, $args['items'], $param . '[' . $index . ']' );
[2443] Fix | Delete
if ( is_wp_error( $is_valid ) ) {
[2444] Fix | Delete
return $is_valid;
[2445] Fix | Delete
}
[2446] Fix | Delete
}
[2447] Fix | Delete
}
[2448] Fix | Delete
[2449] Fix | Delete
if ( isset( $args['minItems'] ) && count( $value ) < $args['minItems'] ) {
[2450] Fix | Delete
return new WP_Error(
[2451] Fix | Delete
'rest_too_few_items',
[2452] Fix | Delete
sprintf(
[2453] Fix | Delete
/* translators: 1: Parameter, 2: Number. */
[2454] Fix | Delete
_n(
[2455] Fix | Delete
'%1$s must contain at least %2$s item.',
[2456] Fix | Delete
'%1$s must contain at least %2$s items.',
[2457] Fix | Delete
$args['minItems']
[2458] Fix | Delete
),
[2459] Fix | Delete
$param,
[2460] Fix | Delete
number_format_i18n( $args['minItems'] )
[2461] Fix | Delete
)
[2462] Fix | Delete
);
[2463] Fix | Delete
}
[2464] Fix | Delete
[2465] Fix | Delete
if ( isset( $args['maxItems'] ) && count( $value ) > $args['maxItems'] ) {
[2466] Fix | Delete
return new WP_Error(
[2467] Fix | Delete
'rest_too_many_items',
[2468] Fix | Delete
sprintf(
[2469] Fix | Delete
/* translators: 1: Parameter, 2: Number. */
[2470] Fix | Delete
_n(
[2471] Fix | Delete
'%1$s must contain at most %2$s item.',
[2472] Fix | Delete
'%1$s must contain at most %2$s items.',
[2473] Fix | Delete
$args['maxItems']
[2474] Fix | Delete
),
[2475] Fix | Delete
$param,
[2476] Fix | Delete
number_format_i18n( $args['maxItems'] )
[2477] Fix | Delete
)
[2478] Fix | Delete
);
[2479] Fix | Delete
}
[2480] Fix | Delete
[2481] Fix | Delete
if ( ! empty( $args['uniqueItems'] ) && ! rest_validate_array_contains_unique_items( $value ) ) {
[2482] Fix | Delete
/* translators: %s: Parameter. */
[2483] Fix | Delete
return new WP_Error( 'rest_duplicate_items', sprintf( __( '%s has duplicate items.' ), $param ) );
[2484] Fix | Delete
}
[2485] Fix | Delete
[2486] Fix | Delete
return true;
[2487] Fix | Delete
}
[2488] Fix | Delete
[2489] Fix | Delete
/**
[2490] Fix | Delete
* Validates a number value based on a schema.
[2491] Fix | Delete
*
[2492] Fix | Delete
* @since 5.7.0
[2493] Fix | Delete
*
[2494] Fix | Delete
* @param mixed $value The value to validate.
[2495] Fix | Delete
* @param array $args Schema array to use for validation.
[2496] Fix | Delete
* @param string $param The parameter name, used in error messages.
[2497] Fix | Delete
* @return true|WP_Error
[2498] Fix | Delete
*/
[2499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function