function sfhiv_draw_taxonomy_query_menu($tax_name, $query, $args = array()) { if (!is_object_in_taxonomy($query->query_vars['post_type'], $tax_name)) { return; } if (!isset($args['include'])) { $query = sfhiv_remove_url_vars_from_query($query, array($tax_name)); $query = sfhiv_unpage_query($query); $categories = sfhiv_get_taxonomy_in($query, $tax_name, 'ids'); $args['include'] = implode(",", $categories); if (!isset($args['min_display'])) { $args['min_display'] = 2; } if (count($categories) < $args['min_display']) { return; } } if (!isset($args['base_link'])) { if (is_page() && mini_archive_on_page(get_the_ID())) { $args['base_link'] = get_permalink(); } else { $args['base_link'] = get_post_type_archive_link($query->query_vars['post_type']); } } if (!isset($args['title_li'])) { $taxonomies = get_taxonomies(array('name' => $tax_name), 'objects'); foreach ($taxonomies as $taxonomy) { $args['title_li'] = $taxonomy->label; } } $args = array_merge(array('taxonomy' => $tax_name, 'show_all_link' => true), $args); sfhiv_draw_taxonomy_menu($args); }
function sfhiv_service_archive_draw_menu($query = false, $args = array()) { if (!$query || !in_array($query->query_vars['post_type'], array("sfhiv_service", "sfhiv_service_hour"))) { return; } $new_query = sfhiv_remove_url_vars_from_query($query, array('sfhiv_service_category')); $tax_term_ids = sfhiv_get_term_ids_in_query($new_query); $base_url = preg_replace('/page\\/(\\d+)\\//i', '', $_SERVER['REQUEST_URI']); // strip out page var if in url if (isset($args['id'])) { $base_url .= "#" . $args['id']; } echo '<section class="filters collapsable">'; sfhiv_draw_taxonomy_query_menu('sfhiv_service_category', $query, array('title_li' => false, 'all_taxonomy_name' => 'All Services', 'extra_classes' => 'filter additive', 'base_link' => $base_url, 'exclude_cats' => $tax_term_ids, 'walker' => new SFHIV_Category_Walker_Filter())); sfhiv_draw_taxonomy_query_menu('sfhiv_day_of_week_taxonomy', $query, array('title_li' => false, 'all_taxonomy_name' => 'Any Day', 'extra_classes' => 'filter', 'base_link' => $base_url)); sfhiv_draw_taxonomy_query_menu('sfhiv_population_category', $query, array('title_li' => false, 'all_taxonomy_name' => "All Populations", 'extra_classes' => 'filter population', 'base_link' => $base_url)); echo '<i class="button"></i>'; echo '</section>'; }