acf_duplicate_field_group()ACF 5.0.0

acf_duplicate_field_group

Duplicates a field group.

Хуки из функции

Возвращает

Массив. The new field group.

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

acf_duplicate_field_group( $id, $new_post_id );
$id((int|string))
The field_group ID, key or name.
$new_post_id(int)
Optional post ID to override.

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

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

Код acf_duplicate_field_group() ACF 6.0.4

function acf_duplicate_field_group( $id = 0, $new_post_id = 0 ) {

	// Disable filters to ensure ACF loads data from DB.
	acf_disable_filters();

	// Get the field_group.
	$field_group = acf_get_field_group( $id );

	// Bail early if field_group was not found.
	if ( ! $field_group || ! $field_group['ID'] ) {
		return false;
	}

	// Get fields.
	$fields = acf_get_fields( $field_group );

	// Update attributes.
	$field_group['ID']  = $new_post_id;
	$field_group['key'] = uniqid( 'group_' );

	// Add (copy) to title when apropriate.
	if ( ! $new_post_id ) {
		$field_group['title'] .= ' (' . __( 'copy', 'acf' ) . ')';
	}

	// When importing a new field group, insert a temporary post and set the field group's ID.
	// This allows fields to be updated before the field group (field group ID is needed for field parent setting).
	if ( ! $field_group['ID'] ) {
		$field_group['ID'] = wp_insert_post( array( 'post_title' => $field_group['key'] ) );
	}

	// Duplicate fields.
	$duplicates = acf_duplicate_fields( $fields, $field_group['ID'] );

	// Save field group.
	$field_group = acf_update_field_group( $field_group );

	/**
	 * Fires immediately after a field_group has been duplicated.
	 *
	 * @date    12/02/2014
	 * @since   5.0.0
	 *
	 * @param   array $field_group The field_group array.
	 */
	do_action( 'acf/duplicate_field_group', $field_group );

	// return
	return $field_group;
}