the_sub_field()
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() 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.
}