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

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

萨龙龙萨龙龙
WordPress
3年前
2
1
3.70W

使用 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年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!
1412.36M457.17W4.42W
加载中…
分享:
WordPress 使用 wp_set_password 重置用户密码
WordPress 使用 wp_set_password 重置用户密码上一篇
WordPress+Nuxt.js+Vue.js开发的前端node项目被停止的处理方案下一篇
WordPress+Nuxt.js+Vue.js开发的前端node项目被停止的处理方案
相关文章
总数:114

WordPress 功能函数—— add_action(将函数挂接到特定的操作上)

描述 WordPress核心执行期间,在特定点执行时或特定事件发生时,Actions是钩子。插件可以指定使用ActionAPI在…
萨龙龙萨龙龙
WordPress Functions
7年前
0
0
2.30W
0

WooCommerce 通过woocommerce_cart_item_thumbnail钩子修改购物车缩略图

在开发基于WooCommerce的商城主题时,我们一般会将模板文件添加到主题中来进行修改,对于有钩子或接口的地方,就没有必要再修改模板代码了…
萨龙龙萨龙龙
WooCommerce
6年前
0
0
1.70W
0

WordPress获取多个角色的用户列表并分页

在WordPress按角色获取可分页的用户列表并显示最新文章这篇文章中我们已经介绍了获取单个角色的用户列表,如果想获取多个角色的用户列表呢,ge…
萨龙龙萨龙龙
WordPress
10年前
0
0
1.04W
0

在 WordPress 主题中编辑器 WooCommerce 产品选项卡-tabs

WooCommerce产品页面默认有3个选项卡:描述,其它信息和评论,对于很多WordPress主题或许不太适合,需要修改或者添加选项卡。…
萨龙龙萨龙龙
WooCommerce, WordPress
4年前
0
0
3.24W
0

WordPress 文章查询类 WP_Query 如何获取序列化数组中的文章

还是在开发导航类主题Slhao的时候遇到的问题,主题使用CodestarFramework专业版选项框架,文章的Metabox选项…
萨龙龙萨龙龙
WordPress
7年前
0
0
1.28W
0

WordPress批量替换自定义域名称

WordPress自定义的强大不言而喻,很多主题都在使用,也为其创建了可视化的选项面板,用户使用都相当的直观、方便。萨龙网络新开发的LensNe…
萨龙龙萨龙龙
WordPress
9年前
0
0
9.92K
0

Woocommerce一个很漂亮的购物系统

Woocommerce,一个wordpress的电子商务扩展插件,一个很漂亮的可以帮你卖任何东西的工具,这是插件在wordpress后台插件中的…
萨龙龙萨龙龙
WooCommerce
11年前
0
0
1.59W
0

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

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

移除 WooCommerce 商城插件编辑产品中的产品数据相关 tabs

WooCommerce插件默认为编辑产品页面提供了产品数据TABS,默认包括:常规、库存、配送、联锁产品、属性、高级等模块,功能强大而实用。…
萨龙龙萨龙龙
WooCommerce
8年前
0
0
1.39W
0

WordPress 重置缩略图插件 Regenerate Thumbnails 获取媒体数量时错误的解决方法

WordPress一键重置缩略图使用相当简单方便,设置了媒体中要裁剪的缩略图参数(使用了WooCommerce商城插件,需要在外观——自定…
萨龙龙萨龙龙
WordPress
7年前
0
0
1.11W
0

Woocommerce+Buddypress+Bbpress商城社区论坛头像本地化

萨龙网络Purity主题是集成了Woocommerce+Buddypress+Bbpress商城社区论坛,因为www.gravatar.com头…
萨龙龙萨龙龙
Bbpress, Buddypress, WooCommerce, WordPress
10年前
0
0
2.05W
0

WordPress网站统计相关信息使用大全

很多个人博客都有一个小工具是来统计网站的一些信息,Deephoto主题企业版本首页就集成了网站统计,添加了工作天数、完成作品、新闻动态、摄影师、…
萨龙龙萨龙龙
WordPress
10年前
0
0
1.25W
0
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:0
萨龙网络
没有相关内容