Title: WP_Site_Query::parse_orderby
Published: August 16, 2016
Last modified: May 20, 2026

---

# WP_Site_Query::parse_orderby( string $orderby ): string|false

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#wp--skip-link--target)

Parses and sanitizes ‘orderby’ keys passed to the site query.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#parameters)󠁿

 `$orderby`stringrequired

Alias for the field to order by.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#return)󠁿

 string|false Value to used in the ORDER clause. False otherwise.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#source)󠁿

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

    	$parsed = false;

    	switch ( $orderby ) {
    		case 'site__in':
    			$site__in = implode( ',', array_map( 'absint', $this->query_vars['site__in'] ) );
    			$parsed   = "FIELD( {$wpdb->blogs}.blog_id, $site__in )";
    			break;
    		case 'network__in':
    			$network__in = implode( ',', array_map( 'absint', $this->query_vars['network__in'] ) );
    			$parsed      = "FIELD( {$wpdb->blogs}.site_id, $network__in )";
    			break;
    		case 'domain':
    		case 'last_updated':
    		case 'path':
    		case 'registered':
    		case 'deleted':
    		case 'spam':
    		case 'mature':
    		case 'archived':
    		case 'public':
    			$parsed = $orderby;
    			break;
    		case 'network_id':
    			$parsed = 'site_id';
    			break;
    		case 'domain_length':
    			$parsed = 'CHAR_LENGTH(domain)';
    			break;
    		case 'path_length':
    			$parsed = 'CHAR_LENGTH(path)';
    			break;
    		case 'id':
    			$parsed = "{$wpdb->blogs}.blog_id";
    			break;
    	}

    	if ( ! empty( $parsed ) || empty( $this->meta_query_clauses ) ) {
    		return $parsed;
    	}

    	$meta_clauses = $this->meta_query->get_clauses();
    	if ( empty( $meta_clauses ) ) {
    		return $parsed;
    	}

    	$primary_meta_query = reset( $meta_clauses );
    	if ( ! empty( $primary_meta_query['key'] ) && $primary_meta_query['key'] === $orderby ) {
    		$orderby = 'meta_value';
    	}

    	switch ( $orderby ) {
    		case 'meta_value':
    			if ( ! empty( $primary_meta_query['type'] ) ) {
    				$parsed = "CAST({$primary_meta_query['alias']}.meta_value AS {$primary_meta_query['cast']})";
    			} else {
    				$parsed = "{$primary_meta_query['alias']}.meta_value";
    			}
    			break;
    		case 'meta_value_num':
    			$parsed = "{$primary_meta_query['alias']}.meta_value+0";
    			break;
    		default:
    			if ( isset( $meta_clauses[ $orderby ] ) ) {
    				$meta_clause = $meta_clauses[ $orderby ];
    				$parsed      = "CAST({$meta_clause['alias']}.meta_value AS {$meta_clause['cast']})";
    			}
    	}

    	return $parsed;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-site-query.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/class-wp-site-query.php#L789)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/class-wp-site-query.php#L789-L861)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#related)󠁿

| Used by | Description | 
| [WP_Site_Query::get_site_ids()](https://developer.wordpress.org/reference/classes/wp_site_query/get_site_ids/)`wp-includes/class-wp-site-query.php` |

Used internally to get a list of site IDs matching the query vars.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_site_query/parse_orderby/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.6.0](https://developer.wordpress.org/reference/since/4.6.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_site_query%2Fparse_orderby%2F)
before being able to contribute a note or feedback.