function widget($args, $instance) { global $wp_query; $facets = elasticsearch\Faceting::all(); $url = null; if (is_category() || is_tax()) { $url = get_term_link($wp_query->queried_object); } elseif (is_tag()) { $url = get_tag_link($wp_query->queried_object->term_id); } elseif (is_archive()) { $url = get_post_type_archive_link($wp_query->queried_object->query_var); } elseif (is_search()) { $url = home_url('/'); } foreach ($facets as $type => $facet) { if (count($facet['selected']) > 0) { $name = $type; if (taxonomy_exists($type)) { $name = get_taxonomy($type)->label; } echo '<aside id="facet-' . $type . '-selected" class="widget facets facets-selected">'; echo '<h3 class="widget-title">' . $name . '</h3>'; echo '<ul>'; foreach ($facet['selected'] as $option) { $url = elasticsearch\Faceting::urlRemove($url, $type, $option['slug']); echo '<li id="facet-' . $type . '-' . $option['slug'] . '" class="facet-item">'; echo '<a href="' . $url . '">' . $option['name'] . '</a>'; echo '</li>'; } echo '</ul>'; echo '</aside>'; } } }
function widget($args, $instance) { global $wp_query; $facets = elasticsearch\Faceting::all(); $async = isset($instance['async']) && $instance['async']; $split = isset($instance['splitSpaces']) && $instance['splitSpaces']; if ($async) { wp_enqueue_script("jquery"); wp_enqueue_script('elasticsearch', plugins_url('/js/ajax.js', __FILE__), array('jquery')); wp_localize_script('elasticsearch', 'esselected', array('showEmpty' => isset($instance['showEmpty']) ? 1 : 0)); } $url = null; if (is_category() || is_tax()) { $url = get_term_link($wp_query->queried_object); } elseif (is_tag()) { $url = get_tag_link($wp_query->queried_object->term_id); } elseif (is_archive()) { $url = get_post_type_archive_link($wp_query->queried_object->query_var); } elseif (is_search()) { $url = home_url('/'); } if ($url == null) { return null; } if ($async) { echo '<aside id="facet-selected" class="widget facets facets-selected">'; echo '<h3 class="widget-title"><span class="widget-title-inner">Your Selections</span></h3>'; if ($async) { echo '<span class="clear"><a href="#" class="clear-inner esclear">Clear All</a></span>'; } echo '<ul>'; if (is_search()) { if ($split && strpos($wp_query->query_vars['s'], ' ') !== false) { $split = explode(' ', trim($wp_query->query_vars['s'])); foreach ($split as $term) { $term = trim($term); if ($term) { echo '<li class="term removable" data-term="' . $term . '"><a href="#search-term-' . $term . '">Search: ' . $term . '</a></li>'; } } } else { echo '<li data-term="' . $term . '">Search: ' . $wp_query->query_vars['s'] . '</li>'; } } foreach ($facets as $type => $facet) { $name = $type; if (taxonomy_exists($type)) { $name = get_taxonomy($type)->labels->singular_name; } if (isset($facet['available'])) { foreach ($facet['available'] as $option) { $isremovable = $this->isremoveable($option['slug']); echo '<li id="facet-' . $type . '-' . $option['slug'] . '-selected"'; if ($isremovable) { echo ' style="display:none" class="facet-item removable">'; echo '<a href="#facet-' . $type . '-' . $option['slug'] . '">' . ($name == 'post_type' ? 'Content Type' : $name) . ': ' . $option['name'] . '</a>'; } else { echo 'class="facet-item">' . ($name == 'post_type' ? 'Content Type' : $name) . ': ' . $option['name']; } echo '</li>'; } } } echo '</ul>'; echo '</aside>'; } else { foreach ($facets as $type => $facet) { if (count($facet['selected']) > 0) { $name = $type; if (taxonomy_exists($type)) { $name = get_taxonomy($type)->label; } echo '<aside id="facet-' . $type . '-selected" class="widget facets facets-selected">'; echo '<h3 class="widget-title"><span class="widget-title-inner">' . $name . '</span></h3>'; echo '<ul>'; foreach ($facet['selected'] as $option) { $url = elasticsearch\Faceting::urlRemove($url, $type, $option['slug']); $isremovable = $this->isremoveable($option['slug']); echo '<li id="facet-' . $type . '-' . $option['slug'] . '" class="facet-item">'; if ($isremovable) { echo '<a href="' . $url . '">' . $option['name'] . '</a>'; } else { echo $name . ':' . $option['name']; } echo '</li>'; } echo '</ul>'; echo '</aside>'; } } } }