Function Reference: geodir_imex_get_events_query

Summary

Get the posts SQL query for the current post type.

Global Values

$wpdb
(object) (required) WordPress Database object.

Default: None
$plugin_prefix
(string) (required) Geodirectory plugin table prefix.

Default: None

Package

GeoDirectory

Parameters

$query
(string) (required) The SQL query.

Default: None
$post_type
(string) (required) Post type.

Default: None

Return Values

(string)
  • The SQL query.

Change Log

Since: 1.4.6

1.5.1 Query updated to get distinct posts.

1.6.4 Updated to filter events.

Filters

‘geodir_get_export_posts’ [Line: 5544]

Source File

geodir_imex_get_events_query() is located in geodirectory-admin/admin_functions.php [Line: 5529]

Source Code

function geodir_imex_get_events_query( $query, $post_type ) {
    if ( $post_type == 'gd_event' ) {
        global $wpdb, $plugin_prefix;
        
        $table = $plugin_prefix . $post_type . '_detail';
        $schedule_table = EVENT_SCHEDULE;
        
        // Skip listing with statuses trash, auto-draft etc...
        $skip_statuses = geodir_imex_export_skip_statuses();
        $where_statuses = '';
        if ( !empty( $skip_statuses ) && is_array( $skip_statuses ) ) {
            $where_statuses = "AND `" . $wpdb->posts . "`.`post_status` NOT IN('" . implode( "','", $skip_statuses ) . "')";
        }
        
        /** This action is documented in geodirectory-functions/geodirectory-admin/admin_functions.php */
        $where_statuses = apply_filters( 'geodir_get_export_posts', $where_statuses, $post_type );

        $query = $wpdb->prepare( "SELECT {$wpdb->posts}.ID, {$schedule_table}.event_date, {$schedule_table}.event_enddate AS enddate, {$schedule_table}.event_starttime AS starttime, {$schedule_table}.event_endtime AS endtime FROM {$wpdb->posts} INNER JOIN {$table} ON ({$table}.post_id = {$wpdb->posts}.ID) INNER JOIN {$schedule_table} ON ({$schedule_table}.event_id = {$wpdb->posts}.ID) WHERE {$wpdb->posts}.post_type = %s " . $where_statuses . " GROUP BY {$table}.post_id ORDER BY {$wpdb->posts}.ID ASC, {$schedule_table}.schedule_id ASC", $post_type );
    }

    return $query;
}