add_row() ACF 5.2.3

Додає новий рядок даних до існуючого значення поля Repeater або Flexible Content.

Хуків немає.

Повертає

(true|false). Оновлена ​​кількість рядків (count) або false за помилки.

Використання

add_row( $selector, $value, $post_id )
$selector
(рядок) (обов’язковий)
Ім’я поля чи ключ (key).
$value
(масив)
Рядок з новими даними.


Типово: false
$post_id
(число/різне)
ID посту для збереження даних.


За промовчанням: false (поточний пост)

Приклади

1

#1 Додавання нового рядка, використовуючи імена полів (name)

У цьому прикладі показано, як додати новий рядок даних до існуючого поля повторювача «image». Це поле містить 3 підполя: ‘image’, ‘alt’, ‘link’.

$row = array(
	'image' => 123,
	'alt' => 'Another great sunset',
	'link' => 'http://website.com'
);

add_row('images', $row);
0

#2 Додавання нового рядка, використовуючи ключі полів (key)

У цьому прикладі показано, як додати новий рядок даних до існуючого поля Повторювача, використовуючи ключі замість імен. Поле повторювача таке ж, як у прикладі вище.

Аналогічно функції update_field() , використання ключа поля, а не його імені дозволяє ACF правильно знаходити поле, якщо значення, що зберігається, не існує.

$row = array(
	'field_560389746a525' => 123,
	'field_560389746a524' => 'Another great sunset',
	'field_560389746a528' => 'http://website.com'
);

add_row('field_560389746a51f', $row);

список змін

З версії 5.2.3Введено.

Код add_row() ACF 5.10.2

function add_row( $selector, $row = false, $post_id = false ) {

	// filter post_id
	$post_id = acf_get_valid_post_id( $post_id );

	// get field
	$field = acf_maybe_get_field( $selector, $post_id, false );

	// bail early if no field
	if (! $field) {
		return false;
	}

	// get raw value
	$value = acf_get_value( $post_id, $field );

	// ensure array
	$ Value = acf_get_array ($ Value);

	// append
	$value[] = $row;

	// update value
	acf_update_value( $value, $post_id, $field );

	// return
	return count ($ value);

}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *