从菜单wordpress获取特定项目

时间:2014-08-11 10:16:59

标签: php wordpress

在尝试构建2个链接菜单时,可以说层次结构是这样的(在菜单选项中)

- A
 -- B
 -- C
 -- D
   -- D1
   -- D2
- A1

第一个菜单我希望它被修复,所以我用它取出它 'depth' => 1,

第二个菜单必须根据第一个菜单进行更改(如果我按A,它将仅显示BCD 当我按B时,它仍然必须以BCD开启(如果按D1则相同)。我认为我们明白了它应该如何运作。 当我尝试构建此功能时,我只会在您从主菜单中选择(例如AA1)时才能获取菜单。 但是当你在深度菜单中更深入地选择它显示喜欢的孩子们。 (如果我选择D子菜单变为D1D2),我不想要它, 我试着检查菜单的深度,或者得到任何可以帮助我做这种事情的东西,但我找不到任何东西。

这里有一些代码: 功能:

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;
}

获取菜单:

$menu = wp_nav_menu(array(
    'container' => false,                           // remove nav container
    'container_class' => 'right_menu',                 // class of container (should you choose to use it)
    'menu' => __( 'top_main_nav', 'bonestheme' ),  // nav name
    'menu_class' => 'main_bar_menu '.$lang.'',               // adding custom nav class
    'theme_location' => 'main-nav',                 // where it's located in the theme
    'before' => '',                                 // before the menu
    'after' => '',                                  // after the menu
    'link_before' => '',                            // before each link
    'link_after' => '',                             // after each link
    'depth' => 1,                                   // limit the depth of the nav
    'fallback_cb' => ''                             // fallback function (if there is one)
)); 


$current_page = 0;
// check if the current page has a menu.

foreach(wp_get_nav_menu_items('top_main_nav') as $pagec) {
    if(get_the_title() == $pagec->title) {
        $current_page = $pagec->title;
    }
}

if($current_page === 0) {
    $current_page = "Home";

}


$args = array(
    'container' => false,
    'container_class' => 'main_bar_menu',
    'menu'    => 'top_main_nav',
    'menu_class' => 'main_bar_menu',
    'submenu' => $current_page,
);
wp_nav_menu( $args ); 

我正试图找到一个解决方案大约2天:\如果有人可以指导我,我会非常感激!

非常感谢!

0 个答案:

没有答案