Skip to content

Instantly share code, notes, and snippets.

@kevinruscoe
Created December 11, 2014 18:22
Show Gist options
  • Select an option

  • Save kevinruscoe/3fd2716d67e82152896a to your computer and use it in GitHub Desktop.

Select an option

Save kevinruscoe/3fd2716d67e82152896a to your computer and use it in GitHub Desktop.
submenu_limit
add_filter( 'wp_nav_menu_objects', 'submenu_limit', 10, 2 );
function submenu_limit( $items, $args ) {
if ( empty( $args->submenu ) ) {
return $items;
}
$ids = wp_filter_object_list( $items, array( 'title' => $args->submenu ), 'and', 'ID' );
$parent_id = array_pop( $ids );
$children = submenu_get_children_ids( $parent_id, $items );
foreach ( $items as $key => $item ) {
if ( ! in_array( $item->ID, $children ) ) {
unset( $items[$key] );
}
}
return $items;
}
function submenu_get_children_ids( $id, $items ) {
$ids = wp_filter_object_list( $items, array( 'menu_item_parent' => $id ), 'and', 'ID' );
foreach ( $ids as $id ) {
$ids = array_merge( $ids, submenu_get_children_ids( $id, $items ) );
}
return $ids;
}
// Usage
$args = array(
'menu' => 'Menu Name',
'submenu' => 'About Us',
);
wp_nav_menu( $args );
// From: http://wordpress.stackexchange.com/questions/2802/display-a-portion-branch-of-the-menu-tree-using-wp-nav-menu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment