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_add_mini_archive_menu() { global $post; $archive_type = mini_archive_on_page(get_the_ID()); if ($archive_type && !is_home()) { $output_archive = false; $query = mini_archive_get_query(get_the_ID()); if (!in_array($archive_type, array('sfhiv_event'))) { $years = sfhiv_get_taxonomy_in($query, 'sfhiv_year', 'ids'); if (count($years) > 1) { $output_archive = true; sfhiv_draw_taxonomy_menu(array('taxonomy' => 'sfhiv_year', 'title_li' => false, 'include' => implode(',', $years), 'show_all_link' => false, 'base_link' => get_permalink(get_the_ID()))); } } $archive_filters = mini_archive_get_filters(); foreach ($archive_filters as $filter) { if (!$output_archive) { $taxes = sfhiv_get_taxonomy_in($query, $filter['type'], 'ids'); if (count($taxes) > 1) { $output_archive = true; sfhiv_draw_taxonomy_menu(array('taxonomy' => $filter['type'], 'title_li' => false, 'include' => implode(',', $taxes), 'show_all_link' => false, 'base_link' => get_permalink(get_the_ID()))); } } } if (is_home()) { $output_archive = true; } if (!$output_archive && !in_array($archive_type, array('sfhiv_service', 'sfhiv_service_hour'))) { $query = mini_archive_get_query(get_the_ID(), array('posts_per_page' => 3)); $org_post = $post; ?> <nav><ul class="menu"><?php foreach ($query->posts as $post) { get_template_part('list-item', get_post_type()); } $post = $org_post; ?> </ul></nav><?php } } }