acf_field_repeater::load_value()publicACF 3.6

Filters the field $value after it is loaded from the database.

Метод класса: acf_field_repeater{}

Хуков нет.

Возвращает

Массив. $value

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

$acf_field_repeater = new acf_field_repeater();
$acf_field_repeater->load_value( $value, $post_id, $field );
$value(разное) (обязательный)
The value found in the database.
$post_id(разное) (обязательный)
The $post_id from which the value was loaded.
$field(массив) (обязательный)
The field array holding all the field options.

Список изменений

С версии 3.6 Введена.

Код acf_field_repeater::load_value() ACF 6.0.4

public function load_value( $value, $post_id, $field ) {
	// Bail early if we don't have enough info to load the field.
	if ( empty( $value ) || ! is_numeric( $value ) || empty( $field['sub_fields'] ) ) {
		return false;
	}

	$value  = (int) $value;
	$rows   = array();
	$offset = 0;

	// Ensure pagination is disabled inside blocks.
	if ( acf_get_data( 'acf_inside_rest_call' ) || doing_action( 'wp_ajax_acf/ajax/fetch-block' ) ) {
		$field['pagination'] = false;
	}

	if ( ! empty( $field['pagination'] ) && $this->is_rendering ) {
		$rows_per_page = isset( $field['rows_per_page'] ) ? (int) $field['rows_per_page'] : 20;

		if ( $rows_per_page < 1 ) {
			$rows_per_page = 20;
		}

		if ( doing_action( 'wp_ajax_acf/ajax/query_repeater' ) ) {
			$offset = ( intval( $_POST['paged'] ) - 1 ) * $rows_per_page; // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Verified elsewhere.
			$value  = min( $value, $offset + $rows_per_page );
		} else {
			$value = min( $value, $rows_per_page );
		}
	}

	for ( $i = $offset; $i < $value; $i++ ) {
		$rows[ $i ] = array();

		foreach ( array_keys( $field['sub_fields'] ) as $j ) {
			$sub_field = $field['sub_fields'][ $j ];

			// Bail early if no name (tab field).
			if ( acf_is_empty( $sub_field['name'] ) ) {
				continue;
			}

			// Update $sub_field name and value.
			$sub_field['name']               = "{$field['name']}_{$i}_{$sub_field['name']}";
			$sub_value                       = acf_get_value( $post_id, $sub_field );
			$rows[ $i ][ $sub_field['key'] ] = $sub_value;
		}
	}

	return $rows;
}