WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта с помощью браузерных PUSH уведомлений
функция не описана

acf_update_field() ACF 5.7.10

Updates a field in the database.

Хуки из функции
Возвращает

null. Ничего.

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

acf_update_field( $field, $specific );
$field(массив) (обязательный)
The field array.
$specific(массив)
An array of specific field attributes to update.

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

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

Код acf_update_field() ACF 5.9.1

<?php
function acf_update_field( $field, $specific = array() ) {
	
	// Validate field.
	$field = acf_validate_field( $field );
	
	// May have been posted. Remove slashes.
	$field = wp_unslash( $field );
	
	// Parse types (converts string '0' to int 0).
	$field = acf_parse_types( $field );
	
	// Clean up conditional logic keys.
	if( $field['conditional_logic'] ) {
		
		// Remove empty values and convert to associated array.
		$field['conditional_logic'] = array_filter( $field['conditional_logic'] );
		$field['conditional_logic'] = array_values( $field['conditional_logic'] );
		$field['conditional_logic'] = array_map( 'array_filter', $field['conditional_logic'] );
		$field['conditional_logic'] = array_map( 'array_values', $field['conditional_logic'] );
	}
	
	// Parent may be provided as a field key.
	if( $field['parent'] && !is_numeric($field['parent']) ) {
		$parent = acf_get_field_post( $field['parent'] );
		$field['parent'] = $parent ? $parent->ID : 0;
	}
	
	/**
	 * Filters the $field array before it is updated.
	 *
	 * @date	12/02/2014
	 * @since	5.0.0
	 *
	 * @param	array $field The field array.
	 */
	$field = apply_filters( "acf/update_field", $field );
	
	// Make a backup of field data and remove some args.
	$_field = $field;
	acf_extract_vars( $_field, array( 'ID', 'key', 'label', 'name', 'prefix', 'value', 'menu_order', 'id', 'class', 'parent', '_name', '_prepare', '_valid' ) );
	
	// Create array of data to save.
	$save = array(
		'ID'			=> $field['ID'],
		'post_status'	=> 'publish',
		'post_type'		=> 'acf-field',
		'post_title'	=> $field['label'],
		'post_name'		=> $field['key'],
		'post_excerpt'	=> $field['name'],
		'post_content'	=> maybe_serialize( $_field ),
		'post_parent'	=> $field['parent'],
		'menu_order'	=> $field['menu_order'],
	);
	
	// Reduce save data if specific key list is provided.
	if( $specific ) {
		$specific[] = 'ID';
		$save = acf_get_sub_array( $save, $specific );
	}
	
	// Unhook wp_targeted_link_rel() filter from WP 5.1 corrupting serialized data.
	remove_filter( 'content_save_pre', 'wp_targeted_link_rel' );
	
	// Slash data.
	// WP expects all data to be slashed and will unslash it (fixes '\' character issues).
	$save = wp_slash( $save );
	
	// Update or Insert.
	if( $field['ID'] ) {
		wp_update_post( $save );
	} else	{
		$field['ID'] = wp_insert_post( $save );
	}
	
	// Flush field cache.
	acf_flush_field_cache( $field );
	
	/**
	 * Fires after a field has been updated, and the field cache has been cleaned.
	 *
	 * @date	24/1/19
	 * @since	5.7.10
	 *
	 * @param	array $field The field array.
	 */
	do_action( "acf/updated_field", $field );	
	
	// Return field.
	return $field;
}