今天补充下,如何将 外观-菜单 设置的菜单项目添加到顶部工具条,然后你可以直接在 外观-菜单 管理这个菜单的链接,效果如下如:

自动草稿

一起来看下实现方法,在. E H a A此之前,建议大家先看下文\ p r A G章开头提到的文章,] . M N P J熟悉下添加菜单到工具条的基本方j : L H式,然后你才可能看的# / R k e u + ( 7懂下面提到的代码。

1、假设我们通过 register_nav_menus() 函数注册了几个菜单位置:

  1. ad9 f : o q 6 Dd_action(\’after_setup_theM k qme\’,\’cmp_theme_seD } Otup\’);
  2. functionY 7 Y v S 7 1cf # $mj O 4 Y V 3p_theme_setup(){
  3. registu \ z Z m \er_nav_menus(array(
  4. \’main-menu\’=>__(\’MainMenu\’,\’cmp\’),
  5. \’foot-menu\’=&\ 1 2 –gt;__(\’FooterMenu\’,\’cmp\’),
  6. \’foot-link\’=>__(\’FooterLinks\’,\’cmp\’),
  7. \’user-menu\’=>__(\’UserMenuy n 2 J 3\’,\’cmp\’)
  8. ));
  9. }

注:这里是我添加到主题的 functions.php 来创建菜单位置的函数,就如上图所示的“主题位置”中的主菜单、底部菜单、页脚菜单和用户菜单。大家可以自己找到你的主题的相似函数(一般搜索 register_nav_menu 可以找到的,每个主题不一样,也不一定是在这个文件,大家自己找找吧,不知道的就问主题作者)

2、然后我们要调用的是 user-menu (用户菜单)这个菜单位置的菜单,就可以使用下面的代码f ] 1 ! 9 r = 0 U

  1. /**
  2. *添加菜单到管理工具条
  3. *https://+ . h H D ( ` .www.xhsay6 5 ^ d – & K ) i.com/wordpress-add-menu-to-admin-bar.html
  4. [emailprotected]
  5. */
  6. function) q wcmp_add_admit | l 5 @ N Yn_bar_menu(&$wp_admin_bar)
  7. {
  8. //判断user-menu这个菜单位置是否, – % o B挂载了菜单
  9. if(has_nav_menu(\’us~ g Her-menY V V \u\’)){
  10. //获取user-menu菜单的链接
  11. $menu=wp_get_nav_menu_object(\’user-menu\’);
  12. $menu_items=wp_get_nav_menu_items($menu->term_id);
  13. //添加一级菜单
  14. $wp_admin_bar->add_menu(array(
  15. \’id\’=>\’user-menu-0\’,
  16. \’title\’=>__(\’FrontendUserMenu\’,\’cmp\’),
  17. ));
  18. //循环输出user-menu菜单的链接作为子菜单
  19. foreach($menu_Y J g $ * p Z Sitemsas$menu_item){
  20. $wp_admin_bar->add_menu(array(
  21. \’id\’=>\’user-menu-\’.$mf W 5 ;enu_item->ID,
  22. \o e Y h 9 q’p\ $ I a j , darent\’=>\’user-mens n N l J Cu-\’.$menu_item->menu_item_parent,
  23. \’t& – * Eitle\’=~ : o R N \ | 9>$menu_item->titl= # 9 K ` we,
  24. \’href\’=>$menu_item->url,
  25. \’meta\’=>array(
  26. \’title\’=>$menu_item->attr_title,
  27. \’target\’=>\’_blank\’,
  28. \’class\’=&gt~ D = b ! ( I a D;F V ~ k 1implode(\’\’,$menu_item->n 5 4 @ ,classes),
  29. ),
  30. ));
  31. }
  32. }
  33. }
  34. add_action(\’admin_bar_menu\’,\’cmp_add_admin_bar_menu\’,999);

注意看下代码的注释,关键点就M M 0 G _ C是获取菜T 9 l 9 z单的链接,然后循环输出作为工具条的二级菜单。