From 20484acaba356233d40173d4d7d081884d482977 Mon Sep 17 00:00:00 2001 From: Anthony Talarico Date: Fri, 14 Oct 2016 09:07:29 -0400 Subject: [PATCH] adding footer menu, groups-media and communities menus to offcanvas --- functions.php | 11 ++++++++++ lib/navigation.php | 42 ++++++++++++++++++++++++++++++++++----- parts/off-canvas-menu.php | 9 +++++++++ 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/functions.php b/functions.php index 6b37282..508f4f8 100644 --- a/functions.php +++ b/functions.php @@ -315,4 +315,15 @@ function hm_get_template_part( $file, $template_args = array(), $cache_args = ar return $data; echo $data; } +// add the name of the appearance as the parameter to create a menu based on its subpages +function create_offcanvas_menu($menu){ + if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[$menu] )) { + $menu = wp_get_nav_menu_object( $locations[ $menu ] ); + $menu_items = wp_get_nav_menu_items($menu->term_id); + } + foreach ( $menu_items as $menu_item ) { + $page_ids[] = get_post_meta( $menu_item->ID, '_menu_item_object_id', true ); + } + glm_page_menu(0, 'vertical dropdown menu',$page_ids); +} ?> diff --git a/lib/navigation.php b/lib/navigation.php index afd0497..988a463 100644 --- a/lib/navigation.php +++ b/lib/navigation.php @@ -104,7 +104,39 @@ if ( ! function_exists( 'glm_theme_footer' ) ) { * * Grab the top level pages and their sub pages as the main navigation */ -function glm_page_menu($parent = 0, $class = '') +//function glm_page_menu($parent = 0, $class = '') +//{ +// $menuConfig = glm_get_menu_options(); +// $frontPageId = get_option('page_on_front'); +// $parents = array(); +// $args = array( +// 'post_type' => 'page', +// 'parent' => $parent, +// 'number' => '', +// 'exclude' => $frontPageId, +// 'post_status' => 'publish', +// 'sort_order' => 'asc', +// 'sort_column' => 'menu_order' +// ); +// if ($parent == 0 && $menuConfig['menu_options']['main_level_pages']) { +// $args['include'] = $menuConfig['menu_options']['main_level_pages']; +// } +// $pages = get_pages($args); +// echo ''."\n"; +// foreach ($pages as $page) { +// $childs = get_pages('child_of=' . $page->ID); +// if (count($childs) > 0) { +// echo '
  • '."\n"; +// echo ''.$page->post_title.''."\n"; +// echo glm_page_menu($page->ID, 'sub-menu dropdown'); +// echo '
  • '."\n"; +// } else { +// echo '
  • '.$page->post_title.'
  • '."\n"; +// } +// } +// echo ''."\n"; +//} +function glm_page_menu($parent = 0, $class = '',$page_ids = []) { $menuConfig = glm_get_menu_options(); $frontPageId = get_option('page_on_front'); @@ -118,17 +150,17 @@ function glm_page_menu($parent = 0, $class = '') 'sort_order' => 'asc', 'sort_column' => 'menu_order' ); - if ($parent == 0 && $menuConfig['menu_options']['main_level_pages']) { - $args['include'] = $menuConfig['menu_options']['main_level_pages']; + if ( !empty( $page_ids ) ){ + $args['include'] = $page_ids; } $pages = get_pages($args); echo ''."\n"; foreach ($pages as $page) { $childs = get_pages('child_of=' . $page->ID); if (count($childs) > 0) { - echo '
  • '."\n"; + echo '
  • '."\n"; echo ''.$page->post_title.''."\n"; - echo glm_page_menu($page->ID, 'sub-menu dropdown'); + echo glm_page_menu($page->ID, 'children sub-menu dropdown'); echo '
  • '."\n"; } else { echo '
  • '.$page->post_title.'
  • '."\n"; diff --git a/parts/off-canvas-menu.php b/parts/off-canvas-menu.php index 63c30df..4bb6b48 100644 --- a/parts/off-canvas-menu.php +++ b/parts/off-canvas-menu.php @@ -1,5 +1,14 @@