//$_needed_terms = array_diff($_all_term_ids, $style['selected-excludeterms']);
    //$_invisible_terms = array_diff($_needed_terms, $style['selected-showterms']);
    $_close_fieldset = false;
    $_terms = array();
    $visible_terms = array();
    ob_start();
    foreach ($style['selected-showterms'] as $taxonomy => $terms) {
        if (is_array($terms)) {
            $_needed_terms_full = get_terms($taxonomy, array('orderby' => $term_ordering[0], 'order' => $term_ordering[1], 'include' => $terms));
            $_needed_terms_full = apply_filters('asp_fontend_get_taxonomy_terms', $_needed_terms_full, $taxonomy, array('orderby' => $term_ordering[0], 'order' => $term_ordering[1], 'include' => $terms));
            //var_dump($taxonomy);
            $_needed_terms_sorted = array();
            $needed_terms_flat = array();
            if (w_isset_def($style['frontend_term_hierarchy'], 1) == 1) {
                wd_sort_terms_hierarchicaly($_needed_terms_full, $_needed_terms_sorted);
                wd_flatten_hierarchical_terms($_needed_terms_sorted, $needed_terms_flat);
            } else {
                $needed_terms_flat = $_needed_terms_full;
            }
            if ($style['showseparatefilterboxes'] != 0) {
                $_x_term = get_taxonomies(array("name" => $taxonomy), "objects");
                //var_dump($_x_term);
                if (isset($_x_term[$taxonomy])) {
                    $_tax_name = $_x_term[$taxonomy]->label;
                }
                ?>
                <fieldset>
                <legend><?php 
                echo asp_icl_t("Taxonomy filter box text", $style['exsearchintaxonomiestext']) . " " . $_tax_name;
                ?>
</legend>
Esempio n. 2
0
 /**
  * Flattens a hierarchical array of terms into a flat array, marking levels.
  * Keeps ordering, sets a $cat->level attribute
  *
  * @param Array   $cats     Taxonomy term objects to sort, use get_terms(..)
  * @param Array   $into     Target array
  * @param int     $level    The current recursion depth
  */
 function wd_flatten_hierarchical_terms(array &$cats, array &$into, $level = 0)
 {
     foreach ($cats as $i => $cat) {
         $cat->level = $level;
         $into[] = $cat;
         if (isset($cat->children) && count($cat->children) > 0) {
             wd_flatten_hierarchical_terms($cat->children, $into, $level + 1);
         }
     }
     // We don't need the children structure
     foreach ($into as $cat) {
         unset($cat->children);
     }
 }