海量素材、源码、软件、教程、资源

实时更新,建站资源,各种源码、素材、软件、课程、资源,自由下载



  • 注册
  • 查看作者
  • WordPress 动态添加菜单到顶部管理工具条

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

    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. [email protected]
    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 );

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

  • 0
  • 0
  • 0
  • 25
  • 请登录之后再进行评论

    登录
    聊天
    关注 1
    • 今日签到
    • 累计签到

    暂没有数据

  • 安逸
  • tcotu
  • an
    an
  • 发布
  • 任务
  • 动态
  • 到底部
  • 单栏布局 侧栏位置:
    关闭窗口
    下载海报