Tribe__Events__Repositories__Event::handle_order_by( string $order_by )

Handles the order_by clauses for events


Parameters

$order_by

(string) (Required) The key used to order events; e.g. event_date to order events by start date.


Top ↑

Source

File: src/Tribe/Repositories/Event.php

	public function handle_order_by( $order_by ) {
		/** @var \wpdb $wpdb */
		global $wpdb;

		$check_orderby = $order_by;

		if ( ! is_array( $check_orderby ) ) {
			$check_orderby = explode( ' ', $check_orderby );
		}

		$timestamp_key = 'TIMESTAMP(mt1.meta_value)';

		$by_event_start_date     = isset( $check_orderby['event_date'] )
		                           || in_array( 'event_date', $check_orderby, true );
		$by_event_start_date_utc = isset( $check_orderby['event_date_utc'] )
		                           || in_array( 'event_date_utc', $check_orderby, true );
		$by_organizer            = isset( $check_orderby['organizer'] )
		                           || in_array( 'organizer', $check_orderby, true );
		$by_venue                = isset( $check_orderby['venue'] ) || in_array( 'venue', $check_orderby, true );
		$by_timestamp_key        = isset( $check_orderby[ $timestamp_key ] )
		                           || in_array( $timestamp_key, $check_orderby, true );

		if ( $by_event_start_date || $by_event_start_date_utc ) {
			$this->order_by_date( $by_event_start_date_utc );
		} elseif ( $by_organizer ) {
			$this->order_by_organizer();
		} elseif ( $by_venue ) {
			$this->order_by_venue();
		} elseif ( $by_timestamp_key ) {
			$this->filter_query->orderby( $timestamp_key );
		} else {
			$this->query_args['orderby'] = $order_by;
		}
	}

Top ↑

Changelog

Changelog
Version Description
4.9.7 Introduced.