如何获取当前菜单项ID?

时间:2011-06-06 作者:Leroy

我正在尝试获取菜单项的id,该菜单项已被分类为“当前菜单项”。不是当前页面id,而是导航项目id。

请帮忙

3 个回复
SO网友:daniel.auener

也许有点晚了,但还有一种方法:

$menu = wp_get_nav_menu_items($menu_id,array(
   \'posts_per_page\' => -1,
   \'meta_key\' => \'_menu_item_object_id\',
   \'meta_value\' => $post->ID // the currently displayed post
));

var_dump($menu[0]->ID);
由于菜单项是post类型,您可以使用所有WP查询参数,甚至元查询。上述代码从您通过指定的菜单中选择连接到当前帖子的所有菜单项$menu_id.

SO网友:Leroy

这应该可以解决问题How to get current-menu-item title as variable?

但是改变

$GLOBALS[\'wpse16243_title\'] = $menu_item->title;

$GLOBALS[\'wpse16243_title\'] = $menu_item->ID;
现在可以使用全局变量$wpse16243_title 获取ID

SO网友:John P Bloch

最好的方法是使用nav_menu_css_class 滤器像这样的方法会奏效:

function wpse19375_nav_class( $classes, $item ){
  if( !in_array( \'current-menu-item\', $classes ) )
    return $classes;
  // $item is a \'current-menu-item\' object.
  return $classes;
}

add_filter( \'nav_menu_css_class\', \'wpse19375_nav_class\', 10, 2 );

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph