文档章节

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

j
 james_laughing
发布于 2018/08/20 10:51
字数 639
阅读 21
收藏 0

倡萌之前分享过《25+自定义WordPress顶部管理工具条的技巧》,今天补充下,如何将 外观-菜单 设置的菜单项目添加到顶部工具条,然后你可以直接在 外观-菜单 管理这个菜单的链接,效果如下如:

2016-09-25_074335

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * 添加菜单到管理工具条
 * https://www.wpdaxue.com/wordpress-add-menu-to-admin-bar.html
 * @since 1.2
 */
function cmp_add_admin_bar_menu( &$wp_admin_bar )
{
    //判断 user-menu 这个菜单位置是否挂载了菜单
    if(has_nav_menu('user-menu')){
        //获取 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' => __('Frontend User Menu','cmp'),
            ) );
        //循环输出 user-menu 菜单的链接作为子菜单
        foreach ( $menu_items as $menu_item ) {
            $wp_admin_bar->add_menu( array(
                'id' => 'user-menu-' . $menu_item->ID,
                'parent' => 'user-menu-' . $menu_item->menu_item_parent,
                'title' => $menu_item->title,
                'href' => $menu_item->url,
                'meta' => array(
                    'title' => $menu_item->attr_title,
                    'target' => '_blank',
                    'class' => implode( ' ', $menu_item->classes ),
                    ),
                ) );
        }
    }
}
add_action( 'admin_bar_menu', 'cmp_add_admin_bar_menu',999 );

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

参考资料:

本文转载自:https://www.wpdaxue.com/wordpress-add-menu-to-admin-bar.html

j
粉丝 29
博文 455
码字总数 22188
作品 0
广州
私信 提问
移除 WordPress 3.1 的管理工具条

WordPress 3.1 版本新增了管理工具条,可以很方便在前台直接访问网站后台常用的功能,包括:发布新文章、页面;修改主题、挂件等。不过可能你并不想要这个功能,那么你可以用一行代码简单的 ...

鉴客
2011/01/11
376
0
10个最好的wordpress中使用的jQuery插件

日期:2011/11/20 来源:GBin1.com 现在的开发中,越来越多的开发和设计人员使用wordpress来设计网站。结合使用CMS系统wordpress和强大的jQuery将能给我们的web页面富客户端开发带来无限的可...

gbin1
2011/11/20
3.4K
1
wordpress如何添加调用侧边栏小工具功能

wordpress如何添加侧边栏小工具功能? 进入后台的外观-小工具,如果出现以下提示,则表示你的wordpress主题还没有添加小工具: 在主题文件夹下的functions.php文件中添加以下代码: function...

李佳顺
2013/01/11
5.3K
0
UI插件【B-JUI页面id唯一】

页面结构 B-JUI仅有一个主页面(document),框架内的所有子页面将通过Ajax获取后作为一个页面片段附加到主页面上,外部页面则通过iframe嵌入主页面。 主页面结构(仅body部分) 主页面由上(页头...

k_k_anna
2015/02/03
857
1
wordpress移除/移动/编辑/定制/独显管理员工具AdminBar

移除 简单的方法——后台取消 推荐此法,个人资料中,这个位置 代码方法——想用也没机会 (除非你删除了添加进function中的此段代码) addfilter( 'showadminbar', 'returnfalse' ); 移动 ...

李佳顺
2013/01/18
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Excel数据透视表基础:数据透视表的正确数据格式

1.数据透视表:是一种数据分析方法, 一.使用数据透视表必须用正确的数据格式: 1.数据必须有标题: 2.数据表不能有相同的标题 3.数据表中不能有合并单元格 4.不能有 小计、合计、空行、分类...

东方墨天
5分钟前
1
0
聊聊nacos的NacosDiscoveryAutoConfiguration

序 本文主要研究一下nacos的NacosDiscoveryAutoConfiguration NacosDiscoveryAutoConfiguration nacos-spring-boot-project/nacos-discovery-spring-boot-autoconfigure/src/main/java/com/a......

go4it
39分钟前
4
0
如何保证消息的顺序性?

面试题 如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题...

米兜
43分钟前
7
0
网络安全市场需求

最近,网络安全技能差距的热门话题流传开来。技能差距经常被紧急讨论,可以看出它在实践中的作用是很大的。但信息安全是一门广泛的学科,所以在谈论“技能差距”时需要更具体。有专家表示,真...

linuxCool
今天
3
0
饿了么快应用初体验

作者:饿了么 顾诚 为什么我们选择了快应用 在很长一段时间里,原生饿了么应用对于新用户来说体验成本略高,对于迫切想要点餐的老用户操作有点繁琐;而 Web 版的饿了么应用在体验、速度、功能...

前端老手
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部