ACF_Field_User::format_value()publicACF 3.6.0

Filters the field value after it is loaded from the database but before it is returned to the front-end API.

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

Хуков нет.

Возвращает

Разное.

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

$ACF_Field_User = new ACF_Field_User();
$ACF_Field_User->format_value( $value, $post_id, $field );
$value(разное) (обязательный)
The field value.
$post_id(разное) (обязательный)
The post ID where the value is saved.
$field(массив) (обязательный)
The field array containing all settings.

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

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

Код ACF_Field_User::format_value() ACF 6.0.4

function format_value( $value, $post_id, $field ) {

	// Bail early if no value.
	if ( ! $value ) {
		return false;
	}

	// Clean value into an array of IDs.
	$user_ids = array_map( 'intval', acf_array( $value ) );

	// Find users in database (ensures all results are real).
	$users = acf_get_users(
		array(
			'include' => $user_ids,
		)
	);

	// Bail early if no users found.
	if ( ! $users ) {
		return false;
	}

	// Format values using field settings.
	$value = array();
	foreach ( $users as $user ) {

		// Return object.
		if ( $field['return_format'] == 'object' ) {
			$item = $user;

			// Return array.
		} elseif ( $field['return_format'] == 'array' ) {
			$item = array(
				'ID'               => $user->ID,
				'user_firstname'   => $user->user_firstname,
				'user_lastname'    => $user->user_lastname,
				'nickname'         => $user->nickname,
				'user_nicename'    => $user->user_nicename,
				'display_name'     => $user->display_name,
				'user_email'       => $user->user_email,
				'user_url'         => $user->user_url,
				'user_registered'  => $user->user_registered,
				'user_description' => $user->user_description,
				'user_avatar'      => get_avatar( $user->ID ),
			);

			// Return ID.
		} else {
			$item = $user->ID;
		}

		// Append item
		$value[] = $item;
	}

	// Convert to single.
	if ( ! $field['multiple'] ) {
		$value = array_shift( $value );
	}

	// Return.
	return $value;
}