update_field()

Описание

Обновляет значение определённого поля.

Параметры

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