/** * Display list of sort options available in front end using dropdown. * * @since 1.0.0 * @package GeoDirectory * @global object $wp_query WordPress Query object. */ 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 .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . __($label, 'geodirectory') . '</option>'; } 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 .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . __($label, 'geodirectory') . '</option>'; } 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 .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . __($label, 'geodirectory') . '</option>'; } } } if ($sort_field_options != '') { ?> <div class="geodir-tax-sort"> <select name="sort_by" id="sort_by" onchange="javascript:window.location=this.value;"> <option value="<?php echo esc_url(add_query_arg('sort_by', '')); ?> " <?php if ($sort_by == '') { echo 'selected="selected"'; } ?> ><?php _e('Sort By', 'geodirectory'); ?> </option><?php echo $sort_field_options; ?> </select> </div> <?php } }
/** * BuddyPress listings tab sort options. * * @since 1.0.0 * @package GeoDirectory_BuddyPress_Integration */ function geodir_buddypress_display_sort_options() { global $wp_query; $sort_by = isset($_REQUEST['sort_by']) ? $_REQUEST['sort_by'] : ''; $post_type = geodir_buddypress_action_post_type(); $sort_options = geodir_get_sort_options($post_type); if ($post_type && !empty($sort_options)) { $sort_field_options = ''; foreach ($sort_options as $sort) { $label = $sort->site_title; if ($sort->field_type == 'random') { $key = $sort->field_type; $selected = $sort_by == $key || $sort->is_default == '1' && !isset($_REQUEST['sort_by']) ? 'selected="selected"' : ''; $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . $label . '</option>'; } if ($sort->htmlvar_name == 'comment_count') { $sort->htmlvar_name = 'rating_count'; } if ($sort->sort_asc) { $key = $sort->htmlvar_name . '_asc'; $label = $sort->asc_title ? $sort->asc_title : $sort->site_title; $selected = $sort_by == $key || $sort->is_default == '1' && !isset($_REQUEST['sort_by']) ? 'selected="selected"' : ''; $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . $label . '</option>'; } if ($sort->sort_desc) { $key = $sort->htmlvar_name . '_desc'; $label = $sort->desc_title ? $sort->desc_title : $sort->site_title; $selected = $sort_by == $key || $sort->is_default == '1' && !isset($_REQUEST['sort_by']) ? 'selected="selected"' : ''; $sort_field_options .= '<option ' . $selected . ' value="' . esc_url(add_query_arg('sort_by', $key)) . '">' . $label . '</option>'; } } if ($sort_field_options != '') { ?> <div class="geodir-tax-sort"> <select name="sort_by" id="sort_by" onchange="javascript:window.location=this.value;"> <option value="<?php echo esc_url(add_query_arg('sort_by', '')); ?> " <?php if ($sort_by == '') { echo 'selected="selected"'; } ?> ><?php _e('Sort By', GDBUDDYPRESS_TEXTDOMAIN); ?> </option> <?php echo $sort_field_options; ?> </select> </div> <?php } } }