萨龙网络
登录
首页-WordPress文章-WordPress-正文

WordPress+Nuxt3前后端分离项目,实现不限层级的多维数组菜单

萨龙龙萨龙龙
WordPress
2年前
2
1
2.95W

使用 WordPress+Nuxt3做前后端分离项目时,菜单需要多维数组,且不限层级,可以使用递归函数很方便地将 wp_get_nav_menu_items 返回的对象数组转换为多维数组,实现不限层级的转换。

/**
 * 输出菜单为多维数组
 * 不限层级
 *
 * @param [type] $items
 * @param integer $parent_id
 * @return void
 * @DateTime 2023-04-25
 * @Author 萨龙龙 @ admin@salongweb.com
 * @copyright 萨龙网络:https://api.salongweb.com
 * @version 1.0
 */
function salong_convert_menu_items_to_array($items, $parent_id = 0)
{
    $menu_items = array();

    foreach ($items as $item) {
        if ((int) $item->menu_item_parent === $parent_id) {
            $menu_item = array(
                'id'       => $item->ID,
                'title'    => $item->title,
                'url'      => $item->url,
                'children' => array(),
            );

            $children = salong_convert_menu_items_to_array($items, $item->ID);

            if (!empty($children)) {
                $menu_item['children'] = $children;
            }

            $menu_items[] = $menu_item;
        }
    }

    return $menu_items;
}


$menu_locations   = get_nav_menu_locations();                         // 获取换所有菜单项
$header_menu_id   = $menu_locations['header-menu'];                   // 头部菜单 ID
$menu_items       = wp_get_nav_menu_items($header_menu_id);
$menu_items_array = salong_convert_menu_items_to_array($menu_items);

print_r($menu_items_array);
标签:
本文原创,作者:萨龙龙,其版权均为萨龙网络所有。
如需转载,请注明出处:https://salongweb.com/wordpress-nuxt3-menu-multidimensional-arrays.html
萨龙龙

萨龙龙

侠客
一个平平常常的人,热爱生活、旅行和摄影,骑行去过西藏,一直计划再去。14年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!
1342.19M456.64W3.85W
分享:
WordPress 使用 wp_set_password 重置用户密码
WordPress 使用 wp_set_password 重置用户密码上一篇
WordPress+Nuxt.js+Vue.js开发的前端node项目被停止的处理方案下一篇
WordPress+Nuxt.js+Vue.js开发的前端node项目被停止的处理方案
相关文章
总数:107

WordPress按自定义文章类型进行搜索

一般的Wordpress主题中都有多种自定义文章类型,除了了默认的文章还会有作品、商品等自定义类型的文章,而WordPress默认只能搜索到文章…
萨龙龙萨龙龙
WordPress
9年前
0
0
1.24W
0

WordPress附件函数wp_get_attachment_metadata简码获取照片EXIF信息

自动获取照片的EXIF信息,很多大型的摄影论坛都有这个功能,对于摄影爱好者来说是一个很实用的功能。萨龙龙开发的Deephoto主题和Neatim…
萨龙龙萨龙龙
WordPress
10年前
0
0
1.33W
0

WordPress MU多站点网络共享媒体插件Network Shared Media的使用包括特色图像

WordPressMU虽然是一个程序下可以创建多个站点,但每个站点下的文章、页面、媒体等还是独立的,MU也为不同的站点分配了不同的媒体目录。N…
萨龙龙萨龙龙
WordPress
10年前
0
0
1.79W
0

WordPress 主题获得评论深度的2种方法

一、通过使用全局变量获取评论深度 我相信您应该知道wp_list_comments()函数,它可以将评论打印在网站页面上。 为什么这个功…
萨龙龙萨龙龙
WordPress
4年前
0
0
2.22W
0

WordPress主题使用jQuery插件Isotope添加作品集筛选功能

上一篇文章我们介绍了Isotope,功能强大,效果出众的jQuery插件,但是文章中的代码并不能使用在项目中,所以今天通过Wordpress主题…
萨龙龙萨龙龙
jQuery插件, WordPress
10年前
0
0
1.85W
0

WordPress 功能函数—— addslashes_gpc(添加斜杠以转义字符串)

描述 添加斜杠以转义字符串。 如果设置了magic_quotes_gpc,将首先删除斜杠。 用法 …
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
8.20K
0

WordPress 插入页面函数 wp_insert_post

萨龙网络已经开发了很多WordPress主题,LensNews主题要创建的页面较多,所以导致很多用户来咨询如何设置用户中心,在最新上线的…
萨龙龙萨龙龙
WordPress
7年前
0
0
2.10W
0

WordPress添加 span 标签到分类目录和文章归档文章数量上

WordPress默认提供了分类目录,文章归档等小工具,在前台开发中,由于分类目录和文章归档显示的文章数量没有添加标签,导致写样式比较麻烦,如…
萨龙龙萨龙龙
WordPress
5年前
0
0
1.38W
0

WordPress多站点社区动态中获取自定义文章类型更新

萨龙网络使用Buddypress社区已经很长一段时间,在社区首页动态中可能获取整个网站的最新文章、用户注册,用户动态内容,而自定义文章类型的发布…
萨龙龙萨龙龙
Buddypress, WordPress
9年前
0
0
1.15W
0

WordPress判断文章分页第一页和最后一页

Perimg主题,最近开发的一个图片主题,与之前开发的主题又有很多的进步,以及更多的、少见的实用功能。主题文章中如果是多页就会显示上下篇、上下页…
萨龙龙萨龙龙
WordPress
9年前
0
0
1.13W
0

WooCommerce 注册表单添加本站名称为字段的验证方式

萨龙网络使用的Youji原创企业主题注册登录都是使用WooCommerce商城插件自带的表单,使用简单方便。最近苦于国外机器人注册多,且…
萨龙龙萨龙龙
WooCommerce
6年前
0
0
1.39W
0

WordPress向菜单中添加分类缩略图

同样是在开发吃货主题Chihuo,导航菜单中的二级菜单需要显示省份的小地图,也就是分类菜单中显示自定义的字段,我们可通过以下代码来实现这个功能。…
萨龙龙萨龙龙
WordPress
9年前
0
0
1.06W
0
评论表单游客 您好,欢迎参与讨论。
请输入昵称
请输入邮箱
请输入网址
0 / 0
评论列表
总数:0
萨龙网络
没有相关内容