acf_field_flexible_content::validate_rest_value
Additional validation for the flexible content field when submitted via REST.
Метод класса: acf_field_flexible_content{}
Хуков нет.
Возвращает
true|false|WP.
Использование
$acf_field_flexible_content = new acf_field_flexible_content(); $acf_field_flexible_content->validate_rest_value( $valid, $value, $field );
- $valid(true|false) (обязательный)
- The current validity booleean.
- $value(int) (обязательный)
- The value of the field.
- $field(массив) (обязательный)
- The field array.
Код acf_field_flexible_content::validate_rest_value() acf field flexible content::validate rest value ACF 6.4.2
public function validate_rest_value( $valid, $value, $field ) {
$param = sprintf( '%s[%s]', $field['prefix'], $field['name'] );
$data = array(
'param' => $param,
'value' => $value,
);
if ( ! is_array( $value ) && is_null( $value ) ) {
$error = sprintf( __( '%s must be of type array or null.', 'acf' ), $param );
return new WP_Error( 'rest_invalid_param', $error, $param );
}
$layouts_to_update = array_count_values( array_column( $value, 'acf_fc_layout' ) );
foreach ( $field['layouts'] as $layout ) {
$num_layouts = isset( $layouts_to_update[ $layout['name'] ] ) ? $layouts_to_update[ $layout['name'] ] : 0;
if ( '' !== $layout['min'] && $num_layouts < (int) $layout['min'] ) {
$error = sprintf(
_n(
'%1$s must contain at least %2$s %3$s layout.',
'%1$s must contain at least %2$s %3$s layouts.',
$layout['min'],
'acf'
),
$param,
number_format_i18n( $layout['min'] ),
$layout['name']
);
return new WP_Error( 'rest_invalid_param', $error, $data );
}
if ( '' !== $layout['max'] && $num_layouts > (int) $layout['max'] ) {
$error = sprintf(
_n(
'%1$s must contain at most %2$s %3$s layout.',
'%1$s must contain at most %2$s %3$s layouts.',
$layout['max'],
'acf'
),
$param,
number_format_i18n( $layout['max'] ),
$layout['name']
);
return new WP_Error( 'rest_invalid_param', $error, $data );
}
}
return $valid;
}