今天补充下,如何将 外观-菜单 设置的菜单项目添加到顶部工具条,然后你可以直接在 外观-菜单 管理这个菜单的链接,效果如下如:
一起来看下实现方法,在. E H a A此之前,建议大家先看下文\ p r A G章开头提到的文章,] . M N P J熟悉下添加菜单到工具条的基本方j : L H式,然后你才可能看的# / R k e u + ( 7懂下面提到的代码。
1、假设我们通过 register_nav_menus() 函数注册了几个菜单位置:
- ad9 f : o q 6 Dd_action(\’after_setup_theM k qme\’,\’cmp_theme_seD } Otup\’);
- functionY 7 Y v S 7 1cf # $mj O 4 Y V 3p_theme_setup(){
- registu \ z Z m \er_nav_menus(array(
- \’main-menu\’=>__(\’MainMenu\’,\’cmp\’),
- \’foot-menu\’=&\ 1 2 –gt;__(\’FooterMenu\’,\’cmp\’),
- \’foot-link\’=>__(\’FooterLinks\’,\’cmp\’),
- \’user-menu\’=>__(\’UserMenuy n 2 J 3\’,\’cmp\’)
- ));
- }
注:这里是我添加到主题的 functions.php 来创建菜单位置的函数,就如上图所示的“主题位置”中的主菜单、底部菜单、页脚菜单和用户菜单。大家可以自己找到你的主题的相似函数(一般搜索 register_nav_menu 可以找到的,每个主题不一样,也不一定是在这个文件,大家自己找找吧,不知道的就问主题作者)
2、然后我们要调用的是 user-menu (用户菜单)这个菜单位置的菜单,就可以使用下面的代码f ] 1 ! 9 r = 0 U:
- /**
- *添加菜单到管理工具条
- *https://+ . h H D ( ` .www.xhsay6 5 ^ d – & K ) i.com/wordpress-add-menu-to-admin-bar.html
- [emailprotected]
- */
- function) q wcmp_add_admit | l 5 @ N Yn_bar_menu(&$wp_admin_bar)
- {
- //判断user-menu这个菜单位置是否, – % o B挂载了菜单
- if(has_nav_menu(\’us~ g Her-menY V V \u\’)){
- //获取user-menu菜单的链接
- $menu=wp_get_nav_menu_object(\’user-menu\’);
- $menu_items=wp_get_nav_menu_items($menu->term_id);
- //添加一级菜单
- $wp_admin_bar->add_menu(array(
- \’id\’=>\’user-menu-0\’,
- \’title\’=>__(\’FrontendUserMenu\’,\’cmp\’),
- ));
- //循环输出user-menu菜单的链接作为子菜单
- foreach($menu_Y J g $ * p Z Sitemsas$menu_item){
- $wp_admin_bar->add_menu(array(
- \’id\’=>\’user-menu-\’.$mf W 5 ;enu_item->ID,
- \o e Y h 9 q’p\ $ I a j , darent\’=>\’user-mens n N l J Cu-\’.$menu_item->menu_item_parent,
- \’t& – * Eitle\’=~ : o R N \ | 9>$menu_item->titl= # 9 K ` we,
- \’href\’=>$menu_item->url,
- \’meta\’=>array(
- \’title\’=>$menu_item->attr_title,
- \’target\’=>\’_blank\’,
- \’class\’=>~ D = b ! ( I a D;F V ~ k 1implode(\’\’,$menu_item->n 5 4 @ ,classes),
- ),
- ));
- }
- }
- }
- add_action(\’admin_bar_menu\’,\’cmp_add_admin_bar_menu\’,999);
注意看下代码的注释,关键点就M M 0 G _ C是获取菜T 9 l 9 z单的链接,然后循环输出作为工具条的二级菜单。
特别声明:本站所收录作品、热点评论等信息来源互联网,目的只是为了系统归纳学习和传递资讯所有作品版权归原创作者所有,与本站立场无关,图文源自网络,如有侵权,请联系删除!请联系我们邮箱:908164873@qq.com/电话:187-8421-3206,我们将做删除处理!