Function Reference: geodir_related_posts_display
Summary
Returns related listings of a listing.
Global Values
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
- $post
- (object) (required) The current post object.
- Default: None
- $gridview_columns_widget
- (string) (required) The girdview style of the listings.
- Default: None
- $gd_session
- (object) (required) GeoDirectory Session object.
- Default: None
Package
GeoDirectory
Parameters
- $request
- (array) (required) Related posts request array.
- Default: None
Return Values
- (string)
- Returns related posts html.
Change Log
Since: 1.0.0
Filters
‘geodir_related_posts_widget_query_args’ [Line: 903]
‘geodir_template_part-related-listing-listview’ [Line: 934]
Source File
geodir_related_posts_display() is located in geodirectory-functions/custom_functions.php [Line: 735]
Source Code
function geodir_related_posts_display( $request ) { if ( ! empty( $request ) ) { $before_title = ( isset( $request['before_title'] ) && ! empty( $request['before_title'] ) ) ? $request['before_title'] : ''; $after_title = ( isset( $request['after_title'] ) && ! empty( $request['after_title'] ) ) ? $request['after_title'] : ''; $title = ( isset( $request['title'] ) && ! empty( $request['title'] ) ) ? $request['title'] : __( 'Related Listings', 'geodirectory' ); $post_number = ( isset( $request['post_number'] ) && ! empty( $request['post_number'] ) ) ? $request['post_number'] : '5'; $relate_to = ( isset( $request['relate_to'] ) && ! empty( $request['relate_to'] ) ) ? $request['relate_to'] : 'category'; $layout = ( isset( $request['layout'] ) && ! empty( $request['layout'] ) ) ? $request['layout'] : 'gridview_onehalf'; $add_location_filter = ( isset( $request['add_location_filter'] ) && ! empty( $request['add_location_filter'] ) ) ? $request['add_location_filter'] : '0'; $listing_width = ( isset( $request['listing_width'] ) && ! empty( $request['listing_width'] ) ) ? $request['listing_width'] : ''; $list_sort = ( isset( $request['list_sort'] ) && ! empty( $request['list_sort'] ) ) ? $request['list_sort'] : 'latest'; $character_count = ( isset( $request['character_count'] ) && ! empty( $request['character_count'] ) ) ? $request['character_count'] : ''; global $wpdb, $post, $gd_session, $related_nearest, $related_parent_lat, $related_parent_lon; $related_parent_lat = !empty($post->post_latitude) ? $post->post_latitude : ''; $related_parent_lon = !empty($post->post_longitude) ? $post->post_longitude : ''; $arr_detail_page_tabs = geodir_detail_page_tabs_list(); $related_listing_array = array(); if ( get_option( 'geodir_add_related_listing_posttypes' ) ) { $related_listing_array = get_option( 'geodir_add_related_listing_posttypes' ); } if ( isset($post->post_type) && in_array( $post->post_type, $related_listing_array ) ) { $arr_detail_page_tabs['related_listing']['is_display'] = true; } $is_display = $arr_detail_page_tabs['related_listing']['is_display']; $origi_post = $post; $post_type = ''; $post_id = ''; $category_taxonomy = ''; $tax_field = 'id'; $category = array(); if ( isset( $_REQUEST['backandedit'] ) ) { $post = (object) $gd_session->get( 'listing' ); $post_type = $post->listing_type; if ( isset( $_REQUEST['pid'] ) && $_REQUEST['pid'] != '' ) { $post_id = $_REQUEST['pid']; } } elseif ( isset( $_REQUEST['pid'] ) && $_REQUEST['pid'] != '' ) { $post = geodir_get_post_info( $_REQUEST['pid'] ); $post_type = $post->post_type; $post_id = $_REQUEST['pid']; } elseif ( isset( $post->post_type ) && $post->post_type != '' ) { $post_type = $post->post_type; $post_id = $post->ID; } if ( $relate_to == 'category' ) { $category_taxonomy = $post_type . $relate_to; if ( isset( $post->{$category_taxonomy} ) && $post->{$category_taxonomy} != '' ) { $category = explode( ',', trim( $post->{$category_taxonomy}, ',' ) ); } } elseif ( $relate_to == 'tags' ) { $category_taxonomy = $post_type . '_' . $relate_to; if ( $post->post_tags != '' ) { $category = explode( ',', trim( $post->post_tags, ',' ) ); } $tax_field = 'name'; } /* --- return false in invalid request --- */ if ( empty( $category ) ) { return false; } $all_postypes = geodir_get_posttypes(); if ( ! in_array( $post_type, $all_postypes ) ) { return false; } /* --- return false in invalid request --- */ $location_url = ''; if ( $add_location_filter != '0' ) { $location_url = array(); $geodir_show_location_url = get_option( 'geodir_show_location_url' ); $gd_city = get_query_var( 'gd_city' ); if ( $gd_city ) { $gd_country = get_query_var( 'gd_country' ); $gd_region = get_query_var( 'gd_region' ); } else { $location = geodir_get_default_location(); $gd_country = isset( $location->country_slug ) ? $location->country_slug : ''; $gd_region = isset( $location->region_slug ) ? $location->region_slug : ''; $gd_city = isset( $location->city_slug ) ? $location->city_slug : ''; } if ( $geodir_show_location_url == 'all' ) { $location_url[] = $gd_country; $location_url[] = $gd_region; } else if ( $geodir_show_location_url == 'country_city' ) { $location_url[] = $gd_country; } else if ( $geodir_show_location_url == 'region_city' ) { $location_url[] = $gd_region; } $location_url[] = $gd_city; $location_url = implode( '/', $location_url ); } if ( ! empty( $category ) ) { global $geodir_add_location_url; $geodir_add_location_url = '0'; if ( $add_location_filter != '0' ) { $geodir_add_location_url = '1'; } $viewall_url = get_term_link( (int) $category[0], $post_type . $category_taxonomy ); $geodir_add_location_url = null; } ob_start(); ?>' ); /** geodir_after_title filter Documented in geodirectory_widgets.php */ $after_title = isset( $after_title ) ? $after_title : apply_filters( 'geodir_after_title', '' ); ?>$post_number, 'is_geodir_loop' => true, 'gd_location' => ( $add_location_filter ) ? true : false, 'post_type' => $post_type, 'order_by' => $list_sort, 'post__not_in' => array( $post_id ), 'excerpt_length' => $character_count, 'related_listings' => $is_display ); $tax_query = array( 'taxonomy' => $category_taxonomy, 'field' => $tax_field, 'terms' => $category ); $query_args['tax_query'] = array( $tax_query ); global $gridview_columns_widget, $post; /** * Filters related listing query args. * * @since 1.6.11 * * @param array $query_args The query array. * @param array $request Related posts request array. */ $query_args = apply_filters( 'geodir_related_posts_widget_query_args', $query_args, $request ); query_posts( $query_args ); if ( strstr( $layout, 'gridview' ) ) { $listing_view_exp = explode( '_', $layout ); $gridview_columns_widget = $layout; $layout = $listing_view_exp[0]; } else if ( $layout == 'list' ) { $gridview_columns_widget = ''; } $related_posts = true; $related_nearest = false; if ( $list_sort == 'nearest' ) { $related_nearest = true; } $widget_listings = array(); while (have_posts()) : the_post(); global $post, $wpdb, $preview; $widget_listings[] = $post; endwhile; /** * Filters related listing listview template. * * @since 1.0.0 */ $template = apply_filters( "geodir_template_part-related-listing-listview", geodir_locate_template( 'widget-listing-listview' ) ); /** * Includes related listing listview template. * * @since 1.0.0 */ include( $template ); wp_reset_query(); $post = $origi_post; $related_nearest = false; ?>