Описание
Обновляет значение определённого поля.
Параметры
update_field($selector, $value, [$post_id]);
$selector(string) (Обязательный) Имя или ключ поля.$value(mixed) (Обязательный) Новое значение.$post_id(mixed) (Необязательный) ID записи, в которой сохраняется значение. По умолчанию используется текущая запись.
Возвращаемое значение
(int|bool) ID метаполя, если значение поля ранее не существовало и поле сохраняется не как опция. В противном случае при успешном обновлении возвращает true, а при ошибке — false.
Примеры
Обновление по имени поля
В этом примере показано, как обновить значение поля с именем ‘views’ в текущей просматриваемой записи.
// Получить текущее значение.
$count = (int) get_field('views');
// Увеличить его.
$count++;
// Обновить новым значением.
update_field('views', $count);
Обновление по ключу поля
В этом примере показано, как получить тот же результат, используя ключ поля вместо его имени. Ключ поля следует использовать при сохранении нового значения в записи (если значение отсутствует). Это помогает ACF создать правильную «ссылку» между значением и настройками поля.
Каждому значению, сохранённому в базе данных, присваивается «ссылка» на ключ поля. Это позволяет ACF связать значение с его полем. ACF делает это для форматирования значений при загрузке в соответствии с типом и настройками поля. Например, поле изображения содержит настройку, позволяющую возвращать массив данных изображения вместо ID вложения.
// Получить текущее значение.
$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 термина event (произвольная таксономия) = 4
$post_id = "option"; // страница опций
$post_id = "options"; // то же, что выше
update_field( 'my_field', 'my_value', $post_id );
Сохранение значений в новой записи
В этом примере показано, как создать новую запись и сохранить в ней несколько значений полей.
// Создать новую запись.
$post_data = array(
'post_title' => 'My post',
'post_type' => 'post',
'post_status' => 'publish'
);
$post_id = wp_insert_post( $post_data );
// Сохранить простое текстовое значение.
$field_key = "field_123456";
$value = "some new string";
update_field( $field_key, $value, $post_id );
// Сохранить значение поля типа checkbox или select.
$field_key = "field_1234567";
$value = array("red", "blue", "yellow");
update_field( $field_key, $value, $post_id );
// Сохранить значение поля repeater.
$field_key = "field_12345678";
$value = array(
array(
"sub_field_1" => "Foo",
"sub_field_2" => "Bar"
)
);
update_field( $field_key, $value, $post_id );
// Сохранить значение поля flexible content.
$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 );
// Сохранить значение для поля clone, настроенного на «Prefix Field Names».
update_field( ‘clone_field_name_original_field_name’, $post_id, $value );
Примечания
Изменения не обнаружены
Если значение, переданное этой функции, совпадает со значением, уже сохранённым в базе данных, функция возвращает false.
Обновлено: 30.09.2026