acf_field_clone::acf_get_fields()publicACF 5.3.8

acf_get_fields

This function will hook into the 'acf/get_fields' filter and inject/replace seamless clones fields

@type    function

{} Это метод класса: acf_field_clone{}

Хуков нет.

Возвращает

$fields.

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

$acf_field_clone = new acf_field_clone();
$acf_field_clone->acf_get_fields( $fields, $parent );
$fields (обязательный)
-
$parent (обязательный)
-

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

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

Код acf_field_clone::acf_get_fields() ACF 5.10.2

function acf_get_fields( $fields, $parent ) {

	// bail early if empty
	if ( empty( $fields ) ) {
		return $fields;
	}

	// bail early if not enabled
	if ( ! $this->is_enabled() ) {
		return $fields;
	}

	// vars
	$i = 0;

	// loop
	while ( $i < count( $fields ) ) {

		// vars
		$field = $fields[ $i ];

		// $i
		$i++;

		// bail early if not a clone field
		if ( $field['type'] != 'clone' ) {
			continue;
		}

		// bail early if not seamless
		if ( $field['display'] != 'seamless' ) {
			continue;
		}

		// bail early if sub_fields isn't set or not an array
		if ( ! isset( $field['sub_fields'] ) || ! is_array( $field['sub_fields'] ) ) {
			continue;
		}

		// replace this clone field with sub fields
		$i--;
		array_splice( $fields, $i, 1, $field['sub_fields'] );

	}

	// return
	return $fields;

}