the_sub_field()ACF 1.0.3

This function is the same as echo get_sub_field(), but will escape the value for safe HTML output.

Возвращает

null. Ничего (null).

Использование

the_sub_field( $field_name, $format_value );
$field_name(строка) (обязательный)
The field name.
$format_value(true|false)
Enable formatting of value. When false, the field value will be escaped at this level with acf_esc_html.
По умолчанию: true

Список изменений

С версии 1.0.3 Введена.

Код the_sub_field() ACF 6.4.2

function the_sub_field( $field_name, $format_value = true ) {
	$field = get_sub_field_object( $field_name, $format_value, true, $format_value );
	$value = ( is_array( $field ) && isset( $field['value'] ) ) ? $field['value'] : false;

	if ( is_array( $value ) ) {
		$value = implode( ', ', $value );
	}

	// If we're not a scalar we'd throw an error, so return early for safety.
	if ( ! is_scalar( $value ) ) {
		return;
	}

	// If $format_value is false, we've not been able to apply field level escaping as we're giving the raw DB value. Escape the output with `acf_esc_html`.
	if ( ! $format_value ) {
		$value = acf_esc_html( $value );
	}

	$unescaped_field = get_sub_field_object( $field_name, $format_value, true, false );
	$unescaped_value = ( is_array( $unescaped_field ) && isset( $unescaped_field['value'] ) ) ? $unescaped_field['value'] : false;
	if ( is_array( $unescaped_value ) ) {
		$unescaped_value = implode( ', ', $unescaped_value );
	}

	if ( ! is_scalar( $unescaped_value ) ) {
		$unescaped_value = false;
	}

	$field_type = is_array( $field ) && isset( $field['type'] ) ? $field['type'] : 'text';
	if ( apply_filters( 'acf/the_field/allow_unsafe_html', false, $field_name, 'sub_field', $field_type, $field ) ) {
		$value = $unescaped_value;
	} elseif ( $unescaped_value !== false && (string) $value !== (string) $unescaped_value ) {
		do_action( 'acf/removed_unsafe_html', __FUNCTION__, $field_name, $field, false );
	}

	echo $value; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- escaped inside get_sub_field_object where necessary.
}