Function Reference: geodir_sc_gd_listings_output
Summary
Get the geodirectory listings.
Global Values
- $gridview_columns_widget
- (string) (required) The girdview style of the listings for widget.
- Default: None
- $geodir_is_widget_listing
- (bool) (required) Is this a widget listing?.
- Default: : false
- $geodir_event_widget_listview
- (bool) (required) Check that current listview is event.
- Default: None
- $post
- (object) (required) The current post object.
- Default: None
- $map_jason
- (array) (required) Map data in json format.
- Default: None
- $map_canvas_arr
- (array) (required) Map canvas array.
- Default: None
- $gd_session
- (object) (required) GeoDirectory Session object.
- Default: None
Parameters
- $args
- (array) (required) Array of arguements to filter listings.
- Default: None
Return Values
- (string)
- Listings HTML content.
Change Log
Since: 1.4.2
1.6.5 $tags parameter added.
1.6.18 New attributes added in gd_listings shortcode to filter user favorite listings.
1.6.24 listing_width parameter does not working.
Actions
‘geodir_before_sc_gd_listings’ [Line: 719]
Filters
‘geodir_sc_gd_listings_not_found_content’ [Line: 598]
‘geodir_template_part-widget-listing-listview’ [Line: 746]
Source File
geodir_sc_gd_listings_output() is located in geodirectory-functions/shortcode_functions.php [Line: 576]
Source Code
function geodir_sc_gd_listings_output($args = array()) { $title = !empty($args['title']) ? __($args['title'], 'geodirectory') : ''; $post_type = !empty($args['post_type']) ? $args['post_type'] : 'gd_place'; $category = !empty($args['category']) ? $args['category'] : '0'; $post_number = !empty($args['post_number']) ? $args['post_number'] : 10; $add_location_filter = !empty($args['add_location_filter']) ? true : false; $list_sort = !empty($args['list_sort']) ? $args['list_sort'] : 'latest'; $character_count = isset($args['character_count']) ? $args['character_count'] : ''; $layout = !empty($args['layout']) ? $args['layout'] : 'gridview_onehalf'; $listing_width = !empty($args['listing_width']) ? $args['listing_width'] : ''; $with_pagination = !empty($args['with_pagination']) ? true : false; $event_type = !empty($args['event_type']) ? $args['event_type'] : ''; $shortcode_content = !empty($args['shortcode_content']) ? trim($args['shortcode_content']) : ''; $tags = !empty($args['tags']) ? $args['tags'] : array(); /** * Filter the content text displayed when no listings found. * * @since 1.6.0 * * @param string $shortcode_content The shortcode content text. * @param array $args Array of arguements to filter listings. */ $shortcode_content = apply_filters('geodir_sc_gd_listings_not_found_content', $shortcode_content, $args); $top_pagination = $with_pagination && !empty($args['top_pagination']) ? true : false; $bottom_pagination = $with_pagination && !empty($args['bottom_pagination']) ? true : false; $shortcode_atts = !empty($args['shortcode_atts']) ? $args['shortcode_atts'] : array(); // ajax mode $geodir_ajax = !empty($args['geodir_ajax']) ? true : false; $pageno = $geodir_ajax && !empty($args['pageno']) ? $args['pageno'] : 1; $query_args = array( 'posts_per_page' => $post_number, 'is_geodir_loop' => true, 'gd_location' => $add_location_filter, 'post_type' => $post_type, 'order_by' => $list_sort, 'pageno' => $pageno ); if ($character_count >= 0) { $query_args['excerpt_length'] = $character_count; } if (!empty($args['post_author'])) { $query_args['post_author'] = $args['post_author']; } if (!empty($args['show_featured_only'])) { $query_args['show_featured_only'] = 1; } if (!empty($args['show_special_only'])) { $query_args['show_special_only'] = 1; } if (!empty($args['with_pics_only'])) { $query_args['with_pics_only'] = 0; $query_args['featured_image_only'] = 1; } if (!empty($args['with_videos_only'])) { $query_args['with_videos_only'] = 1; } if (!empty($args['show_favorites_only'])) { $query_args['show_favorites_only'] = 1; $query_args['favorites_by_user'] = !empty($args['favorites_by_user']) ? $args['favorites_by_user'] : 0; } $with_no_results = !empty($args['without_no_results']) ? false : true; if (!empty($category) && isset($category[0]) && $category[0] != '0') { $category_taxonomy = geodir_get_taxonomies($post_type); ######### WPML ######### if (geodir_wpml_is_taxonomy_translated($category_taxonomy[0])) { $category = gd_lang_object_ids($category, $category_taxonomy[0]); } ######### WPML ######### $tax_query = array( 'taxonomy' => $category_taxonomy[0], 'field' => 'id', 'terms' => $category ); $query_args['tax_query'] = array($tax_query); } if (!empty($tags)) { // Clean tags if (!is_array($tags)) { $comma = _x(',', 'tag delimiter'); if ( ',' !== $comma ) { $tags = str_replace($comma, ',', $tags); } $tags = explode(',', trim($tags, " \n\t\r\0\x0B,")); $tags = array_map('trim', $tags); } if (!empty($tags)) { $tag_query = array( 'taxonomy' => $post_type . '_tags', 'field' => 'name', 'terms' => $tags ); if (!empty($query_args['tax_query'])) { $query_args['tax_query'][] = $tag_query; } else { $query_args['tax_query'] = array($tag_query); } } } global $gridview_columns_widget, $geodir_is_widget_listing; if ($post_type == 'gd_event' && function_exists('geodir_event_get_widget_events')) { global $geodir_event_widget_listview; $geodir_event_widget_listview = true; if ($event_type && in_array($event_type, array('past', 'today', 'upcoming'))) { $query_args['geodir_event_type'] = $event_type; } $total_posts = geodir_event_get_widget_events($query_args, true); $widget_listings = $total_posts > 0 ? geodir_event_get_widget_events($query_args) : array(); } else { $total_posts = geodir_get_widget_listings($query_args, true); $widget_listings = $total_posts > 0 ? geodir_get_widget_listings($query_args) : array(); } $current_gridview_columns_widget = $gridview_columns_widget; $identifier = ' gd-wgt-pagi-' . mt_rand(); ob_start(); if (!empty($widget_listings) || $with_no_results) { if (!$geodir_ajax) { /** * Called before the shortcode [gd_listings] content is output. * * @since 1.0.0 */ do_action('geodir_before_sc_gd_listings'); ?>un_set('gd_listing_view'); if ($with_pagination && $top_pagination) { echo geodir_sc_listings_pagination($total_posts, $post_number, $pageno); } /** * Includes listing listview template. * * @since 1.0.0 */ include($template); if ($with_pagination && $bottom_pagination) { echo geodir_sc_listings_pagination($total_posts, $post_number, $pageno); } $geodir_is_widget_listing = false; $GLOBALS['post'] = $current_post; if (!empty($current_post)) { setup_postdata($current_post); } $map_jason = $current_map_jason; $map_canvas_arr = $current_map_canvas_arr; global $gridview_columns_widget; $gridview_columns_widget = $current_gridview_columns_widget; } else { echo $shortcode_content; } ?>