博华网络科技,点击查看详情

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

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

自动草稿

一起来看下实现方法,在此之前,建议大家先看下文章开头提到的文章,熟悉下添加菜单到工具条的基本方式,然后你才可能看的懂下面提到的代码。

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

  1. add_action( ’after_setup_theme’, ’cmp_theme_setup’ );
  2. function cmp_theme_setup() {
  3.     register_nav_menus( array(
  4.         ’main-menu’ => __( ’Main Menu’, ’cmp’ ),
  5.         ’foot-menu’ => __( ’Footer Menu’, ’cmp’ ),
  6.         ’foot-link’ => __( ’Footer Links’, ’cmp’ ),
  7.         ’user-menu’ => __( ’User Menu’, ’cmp’ )
  8.         ) );
  9. }

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

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

  1. /**
  2.  * 添加菜单到管理工具条
  3.  * https://www.xhsay.com/wordpress-add-menu-to-admin-bar.html
  4.  * @since 1.2
  5.  */
  6. function cmp_add_admin_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’ => __(’Frontend User Menu’,’cmp’),
  17.             ) );
  18.         //循环输出 user-menu 菜单的链接作为子菜单
  19.         foreach ( $menu_items as $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’ => $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教程

WordPress为非友情链接添加nofollow属性的方法

2020-5-24 12:07:34

wordpress教程

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

2020-5-24 12:07:40

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