예제 #1
0
 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>';
             }
         }
     }
 }