WP_List_Util::sort_callback()privateWP 4.7.0

Callback to sort an array by specific fields.

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

Хуков нет.

Возвращает

int. 0 if both objects equal. -1 if second object should come first, 1 otherwise.

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

// private - только в коде основоного (родительского) класса
$result = $this->sort_callback( $a, $b );
$a(объект|массив) (обязательный)
One object to compare.
$b(объект|массив) (обязательный)
The other object to compare.

Заметки

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

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

Код WP_List_Util::sort_callback() WP 6.5.2

private function sort_callback( $a, $b ) {
	if ( empty( $this->orderby ) ) {
		return 0;
	}

	$a = (array) $a;
	$b = (array) $b;

	foreach ( $this->orderby as $field => $direction ) {
		if ( ! isset( $a[ $field ] ) || ! isset( $b[ $field ] ) ) {
			continue;
		}

		if ( $a[ $field ] == $b[ $field ] ) {
			continue;
		}

		$results = 'DESC' === $direction ? array( 1, -1 ) : array( -1, 1 );

		if ( is_numeric( $a[ $field ] ) && is_numeric( $b[ $field ] ) ) {
			return ( $a[ $field ] < $b[ $field ] ) ? $results[0] : $results[1];
		}

		return 0 > strcmp( $a[ $field ], $b[ $field ] ) ? $results[0] : $results[1];
	}

	return 0;
}