Function Reference: geodir_listing_slider_widget_output

Summary

Generates listing slider HTML.

Global Values

$post
(object) (required) The current post object.

Default: None

Package

GeoDirectory

Parameters

$args
(array|string) (required) Display arguments including before_title, after_title, before_widget, and after_widget.

Default: None
$instance
(array|string) (required) The settings for the particular instance of the widget.

Default: None

Change Log

Since: 1.0.0

Filters

‘geodir_listing_slider_title’ [Line: 3305]

Source File

geodir_listing_slider_widget_output() is located in geodirectory-functions/general_functions.php [Line: 3054]

Source Code

function geodir_listing_slider_widget_output( $args = '', $instance = '' ) {
	// prints the widget
	extract( $args, EXTR_SKIP );

	echo $before_widget;

	/** This filter is documented in geodirectory_widgets.php */
	$title = empty( $instance['title'] ) ? '' : apply_filters( 'widget_title', __( $instance['title'], 'geodirectory' ) );
	/**
	 * Filter the widget post type.
	 *
	 * @since 1.0.0
	 *
	 * @param string $instance ['post_type'] Post type of listing.
	 */
	$post_type = empty( $instance['post_type'] ) ? 'gd_place' : apply_filters( 'widget_post_type', $instance['post_type'] );
	/**
	 * Filter the widget's term.
	 *
	 * @since 1.0.0
	 *
	 * @param string $instance ['category'] Filter by term. Can be any valid term.
	 */
	$category = empty( $instance['category'] ) ? '0' : apply_filters( 'widget_category', $instance['category'] );
	/**
	 * Filter widget's "add_location_filter" value.
	 *
	 * @since 1.0.0
	 *
	 * @param string|bool $instance ['add_location_filter'] Do you want to add location filter? Can be 1 or 0.
	 */
	$add_location_filter = empty( $instance['add_location_filter'] ) ? '0' : apply_filters( 'widget_add_location_filter', $instance['add_location_filter'] );
	/**
	 * Filter the widget listings limit.
	 *
	 * @since 1.0.0
	 *
	 * @param string $instance ['post_number'] Number of listings to display.
	 */
	$post_number = empty( $instance['post_number'] ) ? '5' : apply_filters( 'widget_post_number', $instance['post_number'] );
	/**
	 * Filter the widget listings limit shown at one time.
	 *
	 * @since 1.5.0
	 *
	 * @param string $instance ['max_show'] Number of listings to display on screen.
	 */
	$max_show = empty( $instance['max_show'] ) ? '1' : apply_filters( 'widget_max_show', $instance['max_show'] );
	/**
	 * Filter the widget slide width.
	 *
	 * @since 1.5.0
	 *
	 * @param string $instance ['slide_width'] Width of the slides shown.
	 */
	$slide_width = empty( $instance['slide_width'] ) ? '' : apply_filters( 'widget_slide_width', $instance['slide_width'] );
	/**
	 * Filter widget's "show title" value.
	 *
	 * @since 1.0.0
	 *
	 * @param string|bool $instance ['show_title'] Do you want to display title? Can be 1 or 0.
	 */
	$show_title = empty( $instance['show_title'] ) ? '' : apply_filters( 'widget_show_title', $instance['show_title'] );
	/**
	 * Filter widget's "slideshow" value.
	 *
	 * @since 1.0.0
	 *
	 * @param int $instance ['slideshow'] Setup a slideshow for the slider to animate automatically.
	 */
	$slideshow = empty( $instance['slideshow'] ) ? 0 : apply_filters( 'widget_slideshow', $instance['slideshow'] );
	/**
	 * Filter widget's "animationLoop" value.
	 *
	 * @since 1.0.0
	 *
	 * @param int $instance ['animationLoop'] Gives the slider a seamless infinite loop.
	 */
	$animationLoop = empty( $instance['animationLoop'] ) ? 0 : apply_filters( 'widget_animationLoop', $instance['animationLoop'] );
	/**
	 * Filter widget's "directionNav" value.
	 *
	 * @since 1.0.0
	 *
	 * @param int $instance ['directionNav'] Enable previous/next arrow navigation?. Can be 1 or 0.
	 */
	$directionNav = empty( $instance['directionNav'] ) ? 0 : apply_filters( 'widget_directionNav', $instance['directionNav'] );
	/**
	 * Filter widget's "slideshowSpeed" value.
	 *
	 * @since 1.0.0
	 *
	 * @param int $instance ['slideshowSpeed'] Set the speed of the slideshow cycling, in milliseconds.
	 */
	$slideshowSpeed = empty( $instance['slideshowSpeed'] ) ? 5000 : apply_filters( 'widget_slideshowSpeed', $instance['slideshowSpeed'] );
	/**
	 * Filter widget's "animationSpeed" value.
	 *
	 * @since 1.0.0
	 *
	 * @param int $instance ['animationSpeed'] Set the speed of animations, in milliseconds.
	 */
	$animationSpeed = empty( $instance['animationSpeed'] ) ? 600 : apply_filters( 'widget_animationSpeed', $instance['animationSpeed'] );
	/**
	 * Filter widget's "animation" value.
	 *
	 * @since 1.0.0
	 *
	 * @param string $instance ['animation'] Controls the animation type, "fade" or "slide".
	 */
	$animation = empty( $instance['animation'] ) ? 'slide' : apply_filters( 'widget_animation', $instance['animation'] );
	/**
	 * Filter widget's "list_sort" type.
	 *
	 * @since 1.0.0
	 *
	 * @param string $instance ['list_sort'] Listing sort by type.
	 */
	$list_sort          = empty( $instance['list_sort'] ) ? 'latest' : apply_filters( 'widget_list_sort', $instance['list_sort'] );
	$show_featured_only = ! empty( $instance['show_featured_only'] ) ? 1 : null;

	wp_enqueue_script( 'geodirectory-jquery-flexslider-js' );
	?>
		
	 $post_number,
		'is_geodir_loop' => true,
		'gd_location'    => $add_location_filter ? true : false,
		'post_type'      => $post_type,
		'order_by'       => $list_sort
	);

	if ( $show_featured_only ) {
		$query_args['show_featured_only'] = 1;
	}

	if ( $category != 0 || $category != '' ) {
		$category_taxonomy = geodir_get_taxonomies( $post_type );
		$tax_query         = array(
			'taxonomy' => $category_taxonomy[0],
			'field'    => 'id',
			'terms'    => $category
		);

		$query_args['tax_query'] = array( $tax_query );
	}

	// we want listings with featured image only
	$query_args['featured_image_only'] = 1;

	if ( $post_type == 'gd_event' ) {
		$query_args['gedir_event_listing_filter'] = 'upcoming';
	}// show only upcoming events

	$widget_listings = geodir_get_widget_listings( $query_args );
	if ( ! empty( $widget_listings ) || ( isset( $with_no_results ) && $with_no_results ) ) {
		if ( $title ) {
			echo $before_title . $title . $after_title;
		}

		global $post;

		$current_post = $post;// keep current post info

		$widget_main_slides = '';
		$nav_slides         = '';
		$widget_slides      = 0;

		foreach ( $widget_listings as $widget_listing ) {
			global $gd_widget_listing_type;
			$post         = $widget_listing;
			$widget_image = geodir_get_featured_image( $post->ID, 'thumbnail', get_option( 'geodir_listing_no_img' ) );

			if ( ! empty( $widget_image ) ) {
				if ( $widget_image->height >= 200 ) {
					$widget_spacer_height = 0;
				} else {
					$widget_spacer_height = ( ( 200 - $widget_image->height ) / 2 );
				}

				$widget_main_slides .= '
  • ' . $widget_image->title . ''; $title = ''; if ( $show_title ) { $title_html = ''; $post_id = $post->ID; $post_permalink = get_permalink( $post->ID ); $post_title = get_the_title( $post->ID ); /** * Filter the listing slider widget title. * * @since 1.6.1 * * @param string $title_html The html output of the title. * @param int $post_id The post id. * @param string $post_permalink The post permalink url. * @param string $post_title The post title text. */ $title = apply_filters( 'geodir_listing_slider_title', $title_html, $post_id, $post_permalink, $post_title ); } $widget_main_slides .= $title . '' . $widget_image->title . '
  • '; $nav_slides .= '
  • ' . $widget_image->title . '
  • '; $widget_slides ++; } } ?>
    1 ) { ?>