Tribe__Events__Repositories__Event::handle_order_by( string $order_by )
Handles the order_by clauses for events
Contents
Parameters
- $order_by
-
(string) (Required) The key used to order events; e.g.
event_dateto order events by start date.
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;
}
}
Changelog
| Version | Description |
|---|---|
| 4.9.7 | Introduced. |