WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress

get_field() ACF 3.6

Получает значение указанного поля.

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

Помните, что каждый тип поля возвращает разные типы данных: строка, число, массив и т.д.

Хуков нет.

Возвращает

Разное. Значение поля.

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

get_field( $selector, $post_id, $format_value );
$selector(строка) (обязательный)
Ключ или название поля (name или key).
$post_id(число/object) (обязательный)
Запись (пост) для которого сохранено указанное поле.
$format_value(true/false) (обязательный)
Позволяет вкл/отключить форматирование. При отключенном форматировании будет возвращено значение какое оно есть в базе данных.

Примеры

#1 Получим значение поля текущего поста

Этот пример показывает, как получить значение поля text_field текущего поста.

$value = get_field( 'text_field' );

#2 Получим значение поля определенного поста

Этот пример показывает, как получить значение поля text_field у поста с ID = 123.

$value = get_field( 'text_field', 123 );

#3 Существует ли значение у поля

Этот пример показывает, как проверить существует ли значение у указанного поля.

$value = get_field( 'text_field' );

if( $value ) {
	echo $value;
}
else {
	echo 'empty';
}

#4 Получим значения одного поля у разных объектов

Этот пример показывает варианты, которые можно передать в $post_id, чтобы получить поле у post, user, term или option.

$post_id = false;        // current post
$post_id = 1;            // post ID = 1
$post_id = "user_2";     // user ID = 2
$post_id = "category_3"; // category term ID = 3
$post_id = "event_4";    // event (custom taxonomy) term ID = 4
$post_id = "option";     // options page
$post_id = "options";    // same as above

$value = get_field( 'my_field', $post_id );

#5 Получим значение поля без форматирования

В этом примере поле 'image' - это поле изображения, которое обычно возвращает объект изображения. Однако, передавая false в качестве 3-го параметра, значение не форматируется и возвращается из базы данных как есть.

Обратите внимание, что второй параметр указан false, чтобы определить текущий пост.

$image = get_field( 'image', false, false );

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

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

Код get_field() ACF 5.9.1

<?php
function get_field( $selector, $post_id = false, $format_value = true ) {
	
	// filter post_id
	$post_id = acf_get_valid_post_id( $post_id );
	
	
	// get field
	$field = acf_maybe_get_field( $selector, $post_id );
	
	
	// create dummy field
	if( !$field ) {
		
		$field = acf_get_valid_field(array(
			'name'	=> $selector,
			'key'	=> '',
			'type'	=> '',
		));
		
		
		// prevent formatting
		$format_value = false;
		
	}
	
	
	// get value for field
	$value = acf_get_value( $post_id, $field );
	
	
	// format value
	if( $format_value ) {
		
		// get value for field
		$value = acf_format_value( $value, $post_id, $field );
		
	}
	
	
	// return
	return $value;
	 
}
Комментариев нет