get_row()ACF 5.3.3

Получает массив (в формате name => value) для текущей строки из цикла have_rows().

Сравнение с функцией the_row()

Функция возвращает те же данные что и функция the_row(), однако, она не включает в себя обработку строк в цикле have_rows().

Работает на основе: acf_get_loop(), acf_maybe_get(), acf_format_value()

Хуков нет.

Возвращает

null. Массив в формате name => value.

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

get_row( $format_value );
$format_value(true/false)
Применять ли логику форматирования.
По умолчанию: true

Примеры

0

#1 Загрузим текущие значения строки и отобразить их

<?php if( have_rows('slides') ): ?>

	<?php
	while( have_rows('slides') ): the_row();

		// Get all values for this row.
		$row = get_row();

		// Check for image value.
		if( $row['image'] ){
			?>
			<img src="<?php echo $row['image']; ?>" />
			<p><?php echo $row['caption']; ?></p>
			<?php
		}
		?>

	<?php endwhile; ?>

<?php endif; ?>

Код get_row() ACF 6.0.4

function get_row( $format = false ) {

	// vars
	$loop = acf_get_loop( 'active' );

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

	// get value
	$value = acf_maybe_get( $loop['value'], $loop['i'] );

	// bail early if no current value
	// possible if get_row_layout() is called before the_row()
	if ( ! $value ) {
		return false;
	}

	// format
	if ( $format ) {

		// vars
		$field = $loop['field'];

		// single row
		if ( acf_get_field_type_prop( $field['type'], 'have_rows' ) === 'single' ) {

			// format value
			$value = acf_format_value( $value, $loop['post_id'], $field );

			// multiple rows
		} else {

			// format entire value
			// - solves problem where cached value is incomplete
			// - no performance issues here thanks to cache
			$value = acf_format_value( $loop['value'], $loop['post_id'], $field );
			$value = acf_maybe_get( $value, $loop['i'] );

		}
	}

	// return
	return $value;

}