WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Платформа для конвертации и монетизации трафика

add_row() ACF 5.2.3

Добавляет новую строку данных к существующему значению поля Repeater или Flexible Content.

Хуков нет.

Возвращает

Число/false. Обновленное количество строк (count) или false при ошибке.

Использование

add_row( $selector, $value, $post_id )
$selector(строка) (обязательный)
Имя поля или ключ (key).
$value(массив)
Строка с новыми данными.
По умолчанию: false
$post_id(число/разное)
ID поста для сохранения данных.
По умолчанию: false (текущий пост)

Примеры

#1 Добавление новой строки, используя имена полей (name)

В этом примере показано, как добавить новую строку данных в существующее поле повторителя «image». Это поле содержит 3 подполя: 'image', 'alt', 'link'.

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

add_row( 'images', $row );

#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.9.1

<?php
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);
		
}

Из раздела: ACF

alexlead 70codepen.io/alexlead
Редакторы: Kama 7881
Комментариев нет
    Войти