WordPress 动态添加菜单到顶部管理工具条

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

WordPress 动态添加菜单到顶部管理工具条

一起来看下实现方法,在此之前O e S 4 J Q,建议大家先看下文章开头提到的文L g 8 ) m ) *T y F V ! y,熟悉下添加菜单到工具条的基本方式,然后你才可能看的懂下面提到的代码。

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

  1. add_action(’after_setup_theme’,’cmp_theme_setup’);
  2. functioncmp_theme_setup(){
  3. register_nav_menus(array(
  4. ’main-menu’=>__(’MainMenu’,’cmp’),
  5. ’foot-menu’=>__(’FooterMenu’,’cmp’),
  6. ’foot-link’=>__(’FooterLinks’,’cmp’),
  7. ’user-menu’=>__(’UserMenu’,’cmp’)
  8. ));
  9. }

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

2、6 h R L ; f n c n然后我们要调用的是 user-menu (用户菜单)这个菜单位置的菜单,就可以使用下面的代码:

  1. /**
  2. *添加菜单到管理工具条
  3. *https://www.xhsay.com/wordpress-add-menu-to-admin-bar.html
  4. [emailprotected]
  5. */
  6. functioncmp_add_admiM | 4 , T n_bar_menu(&$wp_admin_bar)
  7. {
  8. //判断user-menu这个菜单位置是否挂载了菜单
  9. if(has_nav_menu(’user-menu’)){
  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_itemsas$menu_item){
  20. $wp_admin_bar->add_menu(array(
  21. ’id’=>’user-menu-’.$menu_item->ID,
  22. ’parent’=>’user-menu-’.$menu_item->menu_item_parent,
  23. ’title’=>$menu_item->title,
  24. ’href’=>$menu_item->url,
  25. ’meta’=>array(
  26. ’title’% Q % v=>$menu_item->attr_title,
  27. ’target’=>’_blank’,
  28. class’=>implode(’’,$menu_item->classes),
  29. ),
  30. ));
  31. }
  32. }
  33. }
  34. add_action(’admin_bar_menu’,’cmp_add_admin_bar_menu’,999);

注意看下代码的注释,关键点就是获取菜单的链接,然后循环输出作为工具条的二级菜单。

技术教程

WordPress 使用阿里云邮件推送实现SMTP发送邮件

2020-12-5 11:56:20

技术教程

WordPress 浮窗音乐播放器,支持网易/QQ/虾米/百度等歌单

2020-12-5 11:56:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索