get_sub_field_object()
This function is used inside a 'has_sub_field' while loop to return a sub field object
Хуков нет.
Возвращает
Разное.
Использование
get_sub_field_object( $selector, $format_value, $load_value, $escape_html );
- $selector(строка) (обязательный)
- The field name or key.
- $format_value(true|false)
- Whether to format the field value.
По умолчанию:true - $load_value(true|false)
- Whether to load the field value.
По умолчанию:true - $escape_html(true|false)
- Should the field return a HTML safe formatted value.
По умолчанию:false
Список изменений
| С версии 3.5.8.1 | Введена. |
Код get_sub_field_object() get sub field object ACF 6.4.2
function get_sub_field_object( $selector, $format_value = true, $load_value = true, $escape_html = false ) {
$row = acf_get_loop( 'active' );
// bail early if no row
if ( ! $row ) {
return false;
}
// attempt to find sub field
$sub_field = get_row_sub_field( $selector );
// bail early if no sub field
if ( ! $sub_field ) {
return false;
}
// load value
if ( $load_value ) {
$sub_field['value'] = get_row_sub_value( $sub_field['key'] );
}
// escape html is only compatible when formatting the value too
if ( ! $format_value && $escape_html ) {
_doing_it_wrong( __FUNCTION__, __( 'Returning an escaped HTML value is only possible when format_value is also true. The field value has not been returned for security.', 'acf' ), '6.2.6' ); //phpcs:ignore -- escape not required.
$sub_field['value'] = false;
}
// format value
if ( $load_value && $format_value ) {
if ( $escape_html ) {
// return the escaped HTML version if requested.
if ( acf_field_type_supports( $sub_field['type'], 'escaping_html' ) ) {
$sub_field['value'] = acf_format_value( $sub_field['value'], $row['post_id'], $sub_field, true );
} else {
$new_value = acf_format_value( $sub_field['value'], $row['post_id'], $sub_field );
if ( is_array( $new_value ) ) {
$sub_field['value'] = map_deep( $new_value, 'acf_esc_html' );
} else {
$sub_field['value'] = acf_esc_html( $new_value );
}
}
} else {
// get value for field
$sub_field['value'] = acf_format_value( $sub_field['value'], $row['post_id'], $sub_field );
}
}
// return
return $sub_field;
}