function widget($args, $instance)
 {
     if (!function_exists('WPCOM_elasticsearch') || !is_search()) {
         return;
     }
     $facets = WPCOM_elasticsearch()->get_search_facet_data();
     $current_filters = WPCOM_elasticsearch()->get_current_filters();
     if (!$facets && !$current_filters) {
         return;
     }
     $facets_found = false;
     foreach ($facets as $facet) {
         if (count($facet['items']) > 1) {
             $facets_found = true;
             break;
         }
     }
     if (!$facets_found && !$current_filters) {
         return;
     }
     $title = apply_filters('widget_title', !empty($instance['title']) ? $instance['title'] : 'Search Refinement', $instance, $this->id_base);
     echo $args['before_widget'];
     echo $args['before_title'] . $title . $args['after_title'];
     if ($current_filters) {
         echo '<h3>' . __('Current Filters', 'wpcom-elasticsearch') . '</h3>';
         echo '<ul>';
         foreach ($current_filters as $filter) {
             echo '<li><a href="' . esc_url($filter['url']) . '">' . sprintf(__('(X) %1$s: %2$s', 'wpcom-elasticsearch'), esc_html($filter['type']), esc_html($filter['name'])) . '</a></li>';
         }
         if (count($current_filters) > 1) {
             echo '<li><a href="' . esc_url(add_query_arg('s', get_query_var('s'), home_url())) . '">' . __('Remove All Filters', 'wpcom-elasticsearch') . '</a></li>';
         }
         echo '</ul>';
     }
     foreach ($facets as $label => $facet) {
         if (count($facet['items']) < 2) {
             continue;
         }
         echo '<h3>' . $label . '</h3>';
         echo '<ul>';
         foreach ($facet['items'] as $item) {
             echo '<li><a href="' . esc_url($item['url']) . '">' . esc_html($item['name']) . '</a> (' . number_format_i18n(absint($item['count'])) . ')</li>';
         }
         echo '</ul>';
     }
     echo $args['after_widget'];
 }
                            $filters[] = array('url' => remove_query_arg('day'), 'name' => date('F jS, Y', mktime(0, 0, 0, absint($_GET['monthnum']), absint($_GET['day']), absint($_GET['year']))), 'type' => __('Day', 'wpcom-elasticsearch'));
                            break;
                        default:
                            continue 3;
                    }
                    break;
            }
            // end switch()
        }
        return $filters;
    }
    public function get_taxonomy_query_var($taxonomy_name)
    {
        $taxonomy = get_taxonomy($taxonomy_name);
        if (!$taxonomy || is_wp_error($taxonomy)) {
            return false;
        }
        // category_name only accepts a single slug so make a custom, fake query var for categories
        if ('category_name' == $taxonomy->query_var) {
            $taxonomy->query_var = 'category';
        }
        // Some taxonomies do not have a query_var allow custom filtering
        return apply_filters('wpcom_elasticsearch_taxonomy_query_var', $taxonomy->query_var, $taxonomy_name);
    }
}
function WPCOM_elasticsearch()
{
    return WPCOM_elasticsearch::instance();
}
WPCOM_elasticsearch();