Function Reference: geodir_widget_listings_get_order
Summary
Returns orderby SQL using the given query args.
Global Values
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
- $plugin_prefix
- (string) (required) Geodirectory plugin table prefix.
- Default: None
Package
GeoDirectory
Parameters
- $query_args
- (array) (required) The query array.
- Default: None
Return Values
- (string)
- Orderby SQL.
Change Log
Since: 1.0.0
1.6.18 Allow order by custom field in widget listings results sorting.
Source File
geodir_widget_listings_get_order() is located in geodirectory-functions/general_functions.php [Line: 2224]
Source Code
function geodir_widget_listings_get_order( $query_args ) { global $wpdb, $plugin_prefix, $gd_query_args_widgets; $query_args = $gd_query_args_widgets; if ( empty( $query_args ) || empty( $query_args['is_geodir_loop'] ) ) { return $wpdb->posts . ".post_date DESC, "; } $post_type = empty( $query_args['post_type'] ) ? 'gd_place' : $query_args['post_type']; $table = $plugin_prefix . $post_type . '_detail'; $sort_by = ! empty( $query_args['order_by'] ) ? $query_args['order_by'] : ''; switch ( $sort_by ) { case 'latest': case 'newest': $orderby = $wpdb->posts . ".post_date DESC, "; break; case 'featured': $orderby = $table . ".is_featured ASC, ". $wpdb->posts . ".post_date DESC, "; break; case 'az': $orderby = $wpdb->posts . ".post_title ASC, "; break; case 'high_review': $orderby = $table . ".rating_count DESC, " . $table . ".overall_rating DESC, "; break; case 'high_rating': $orderby = "( " . $table . ".overall_rating ) DESC, "; break; case 'random': $orderby = "RAND(), "; break; default: if ( $custom_orderby = geodir_prepare_custom_sorting( $sort_by, $table ) ) { $orderby = $custom_orderby . ", "; } else { $orderby = $wpdb->posts . ".post_title ASC, "; } break; } return $orderby; }