Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

the_field()ACF 1.0.3

Выводит на экран значение указанного поля (метаполя).

Эта мощная функция может использоваться для вывода значения любого поля в любом месте.

Это обёртка для функции get_field().

Работает на основе: get_field()

Возвращает

null. Выводит данные на экран.

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

the_field( $selector, $post_id, $format_value );
$selector(string) (обязательный)
Имя поля (параметр name) или ключ (id).
$post_id(число/object)
ID поста, в котором хранится значение.
По умолчанию: текущий пост
$format_value(true/false)
Применять ли логику форматирования.
По умолчанию: true

Примеры

2

#1 Вывод значения из текущего поста

Пример показывает как выести значение поля “text_field” из текущего поста.

<?php the_field( 'text_field' ); ?>
0

#2 Вывод значения из определенного поста

Пример показывает как выести значение поля “text_field” из поста ID = 123.

<?php the_field( 'text_field', 123 ); ?>
0

#3 Проверка значения на существование

Пример показывает предварительную проверку значения на существование (установку) до выведения значения.

<?php if( get_field('text_field') ): ?>
	<h2><?php the_field('text_field'); ?></h2>
<?php endif; ?>
-1

#4 Получение значений из различных объектов

В этом примере показано множество допустимых значений $post_id, указывающих, где сохранено значение.

$post_id = false;           // current post
$post_id = 123;             // post ID = 123
$post_id = "user_123";      // user ID = 123
$post_id = "term_123";      // term ID = 123
$post_id = "category_123";  // same as above
$post_id = "option";        // options page
$post_id = "options";       // same as above

the_field( 'my_field', $post_id );

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

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

Код the_field() ACF 6.4.2

function the_field( $selector, $post_id = false, $format_value = true ) {
	$field = get_field_object( $selector, $post_id, $format_value, true, $format_value );
	$value = $field ? $field['value'] : get_field( $selector, $post_id, $format_value, $format_value );

	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 );
	}

	// Get the unescaped value while we're still logging removed_unsafe_html.
	$unescaped_value = get_field( $selector, $post_id, $format_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, $selector, $post_id, $field_type, $field ) ) {
		$value = $unescaped_value;
	} elseif ( $unescaped_value !== false && (string) $value !== (string) $unescaped_value ) {
		do_action( 'acf/removed_unsafe_html', __FUNCTION__, $selector, $field, $post_id );
	}

	echo $value; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- escaped by logic above.
}
alexlead 71codepen.io/alexlead
Редакторы: Kama 9890, campusboy 4994
2 комментария