update_field()

Обзор

Функция»update_field()» обновляет значение поля для конкретного поста.

Параметры

update_field($selector, $value, $post_id);
  • $selector (строка) (обязательное) Имя / ключ поля.
  • $value (массив) (обязательное) Новое значение
  • $post_id (число) (необязательное) ID поста. По умолчанию текущий пост.

Примеры

Базовый (по имени поля)

В этом примере показано как обновить значение поля «views», после того как текущий пост был просмотрен.

<?php

// получаем текущее значение поля
$count = (int) get_field('views');


// увеличиваем
$count++;


// обновляем
update_field('views', $count);
    
?>

Базовый (по ключу поля)

В этом примере показано, как добиться того же, что и выше, используя ключ поля вместо имени. Ключ поля следует использовать при сохранении нового значения для поста (когда значение не задано). Это поможет ACF создать правильную «ссылку» между значением и настройками поля.

Каждому значению, сохраненному в базе данных, присваивается «ссылка» ключа поля. Это позволяет связывать значение с его полем, а также помогает ACF форматировать значения на основе типа поля и настроек. Например, тип поля изображение содержит параметр, который позволяет возвращать массив данных изображения вместо его идентификатора.

<?php

// получаем текущее значение поля
$count = (int) get_field('field_123456');


// увеличиваем
$count++;


// обновляем
update_field('field_123456', $count);
    
?>

Обновление значения поля для различных объектов

В этом примере показаны варианты значений $post_id для обновления значений поста, пользователей, терминов и страницы опций.

$post_id = false; // текущий пост
$post_id = 1; // ID поста = 1
$post_id = "user_2"; // ID пользователя = 2
$post_id = "category_3"; // ID рубрики = 3
$post_id = "event_4"; // ID произвольной таксономии = 4
$post_id = "option"; // страница опций
$post_id = "options"; // тоже, что и выше

$value = update_field( 'my_field', 'my_value', $post_id );

Продвинутые примеры

В этом примере будет показано, как создать новый пост и сохранить в нем несколько значений поля.

<?php 

// переменные
$my_post = array(
	'post_title'	=> 'My post',
	'post_type'	=> 'post',
	'post_status'	=> 'publish'
);


// добавляем пост в базу данных
$post_id = wp_insert_post( $my_post );


// сохраняем текстовое значение
$field_key = "field_123456";
$value = "some new string";
update_field( $field_key, $value, $post_id );


// сохраняем значение для чекбокса или выбора
$field_key = "field_1234567";
$value = array("red", "blue", "yellow");
update_field( $field_key, $value, $post_id );


// сохраняем значение для повторителя
$field_key = "field_12345678";
$value = array(
	array(
		"sub_field_1"	=> "Foo",
		"sub_field_2"	=> "Bar"
	)
);
update_field( $field_key, $value, $post_id );


// сохраняем значение для гибкого содержимого
$field_key = "field_123456789";
$value = array(
	array( "sub_field_1" => "Foo1", "sub_field_2" => "Bar1", "acf_fc_layout" => "layout_1_name" ),
	array( "sub_field_x" => "Foo2", "sub_field_y" => "Bar2", "acf_fc_layout" => "layout_2_name" )
);
update_field( $field_key, $value, $post_id );

?>

Похожие