如果当前页面是自定义菜单中的存档页面,如何获取父菜单的名称

时间:2021-01-30 作者:sanghyeon

<?php
// print_r(get_queried_object_id());
$primaryNav = wp_get_nav_menu_items(2);
print_r(get_menu_parent(2));
foreach ($primaryNav as $navItem) {
  if (!empty($navItem->menu_item_parent) && $navItem->object_id == get_queried_object_id()) {
    echo \'<span>\' . get_post($navItem->menu_item_parent)->post_title . \'</span>\';
  }
} ?>
到目前为止,在页面中,我得到了带有object\\u id的父菜单名。

但是,如果从菜单转到“post type”页面,则object\\u id为0,因此无法导入父菜单。我需要修复什么

1 个回复
SO网友:sanghyeon

https://stackoverflow.com/questions/52006212/how-to-get-current-page-menu-item-ancestor-name-wordpress

通过以上问题的回答,我找到了一个解决方案。

function my_menu_parent($theme_location) {
    $locations = get_nav_menu_locations();
    if ( isset( $locations[ $theme_location ] ) ) {
        $menu = wp_get_nav_menu_object( $locations[ $theme_location ] );
        $menu_items = wp_get_nav_menu_items($menu->term_id);
        _wp_menu_item_classes_by_context( $menu_items );
        $breadcrumbs = array();

        foreach ( $menu_items as $menu_item ) {         
            if ($menu_item->current_item_ancestor) {
                $breadcrumbs[] = $menu_item->title;
            }
        }

        return $breadcrumbs;
     }
}
<?php
$parentitems = my_menu_parent( \'menu-1\' );
foreach ( $parentitems as $parentitem ) {
    echo $parentitem."<br>";
}

相关推荐

Making sub-menus exclusive

我真的不知道该怎么解释我在这里找的东西,我在这里找得太露骨了。在我的网站上,我有一个附带菜单,其中包含一系列子类别,每个子类别中都有一些项目。我想知道当我打开另一个子类别时,是否有办法关闭所有其他打开的子类别,例如:1. Animals ----A. Cats ----B. Dogs 2. People ----A. Samantha ----B. Daniel 当我按下“动物”时,我希望“人”关闭,反之亦