Function Reference: geodir_event_loop_filter_groupby

Summary

Filter the GROUP BY clause of the event listings query.

Global Values

$wp_query
(object) (required) WordPress Query object.

Default: None
$query
(WP_Query) (required) The WP_Query instance.

Default: None
$wpdb
(object) (required) WordPress Database object.

Default: None

Parameters

$geodir_post_type
(string) (required) The post type.

Default: None
$table
(string) (required) The table name. Ex: geodir_countries.

Default: None
$condition_date
(string) (required) The parameter for date filter.

Default: None
$gdevents_widget
(bool) (required) True if event widget, otherwise false.

Default: None
$groupby
(string) (required) The GROUP BY clause of the query.

Default: None
$q
(WP_Query) (required) The WP_Query instance.

Default: None

Return Values

(The)
  • GROUP BY clause.

Change Log

Since: 1.0.0

1.2.4 Added global $gdevents_widget.

Source File

geodir_event_loop_filter_groupby() is located in geodir_event_manager/gdevents_functions.php [Line: 720]

Source Code

function geodir_event_loop_filter_groupby( $groupby, $q ) {
	global $wp_query, $query, $wpdb, $geodir_post_type, $table, $condition_date, $gdevents_widget;
	
	if ($geodir_post_type == 'gd_event' && ((is_main_query() && geodir_is_page('listing') && (isset($q->query['gd_is_geodir_page']) && $q->query['gd_is_geodir_page'])) || $gdevents_widget)) {
		$groupby = " $wpdb->posts.ID," . EVENT_SCHEDULE . ".event_date";
	} else if (get_query_var('geodir_event_date_calendar')){
		$groupby = ' event_id';
	}
	
	return $groupby;
}