Обзор
Функция»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 );
?>
Похожие
- Функция: get_field()
- Функция: delete_field()