Function Reference: geodir_display_sort_options

Summary

Display list of sort options available in front end using dropdown.

Global Values

$wp_query
(object) (required) WordPress Query object.

Default: None

Package

GeoDirectory

Change Log

Since: 1.0.0

Source File

geodir_display_sort_options() is located in geodirectory-functions/custom_functions.php [Line: 608]

Source Code

function geodir_display_sort_options() {
	global $wp_query;

	/**
	 * On search pages there should be no sort options, sorting is done by search criteria.
	 *
	 * @since 1.4.4
	 */
	if ( is_search() ) {
		return;
	}

	$sort_by = '';

	if ( isset( $_REQUEST['sort_by'] ) ) {
		$sort_by = $_REQUEST['sort_by'];
	}

	$gd_post_type = geodir_get_current_posttype();

	$sort_options = geodir_get_sort_options( $gd_post_type );


	$sort_field_options = '';

	if ( ! empty( $sort_options ) ) {
		foreach ( $sort_options as $sort ) {
			$sort = stripslashes_deep( $sort ); // strip slashes

			$label = __( $sort->site_title, 'geodirectory' );

			if ( $sort->field_type == 'random' ) {
				$key = $sort->field_type;
				( $sort_by == $key || ( $sort->is_default == '1' && ! isset( $_REQUEST['sort_by'] ) ) ) ? $selected = 'selected="selected"' : $selected = '';
				$sort_field_options .= '';
			}

			if ( $sort->htmlvar_name == 'comment_count' ) {
				$sort->htmlvar_name = 'rating_count';
			}

			if ( $sort->sort_asc ) {
				$key   = $sort->htmlvar_name . '_asc';
				$label = $sort->site_title;
				if ( $sort->asc_title ) {
					$label = $sort->asc_title;
				}
				( $sort_by == $key || ( $sort->is_default == '1' && $sort->default_order == $key && ! isset( $_REQUEST['sort_by'] ) ) ) ? $selected = 'selected="selected"' : $selected = '';
				$sort_field_options .= '';
			}

			if ( $sort->sort_desc ) {
				$key   = $sort->htmlvar_name . '_desc';
				$label = $sort->site_title;
				if ( $sort->desc_title ) {
					$label = $sort->desc_title;
				}
				( $sort_by == $key || ( $sort->is_default == '1' && $sort->default_order == $key && ! isset( $_REQUEST['sort_by'] ) ) ) ? $selected = 'selected="selected"' : $selected = '';
				$sort_field_options .= '';
			}

		}
	}

	if ( $sort_field_options != '' ) {

		?>