WP_Network_Query::parse_orderby()protectedWP 4.6.0

Parses and sanitizes 'orderby' keys passed to the network query.

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

Хуков нет.

Возвращает

Строку|false. Value to used in the ORDER clause. False otherwise.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->parse_orderby( $orderby );
$orderby(строка) (обязательный)
Alias for the field to order by.

Заметки

  • Global. wpdb. $wpdb WordPress database abstraction object.

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

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

Код WP_Network_Query::parse_orderby() WP 6.5.2

protected function parse_orderby( $orderby ) {
	global $wpdb;

	$allowed_keys = array(
		'id',
		'domain',
		'path',
	);

	$parsed = false;
	if ( 'network__in' === $orderby ) {
		$network__in = implode( ',', array_map( 'absint', $this->query_vars['network__in'] ) );
		$parsed      = "FIELD( {$wpdb->site}.id, $network__in )";
	} elseif ( 'domain_length' === $orderby || 'path_length' === $orderby ) {
		$field  = substr( $orderby, 0, -7 );
		$parsed = "CHAR_LENGTH($wpdb->site.$field)";
	} elseif ( in_array( $orderby, $allowed_keys, true ) ) {
		$parsed = "$wpdb->site.$orderby";
	}

	return $parsed;
}