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

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

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

使用 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.32M457.10W4.42W
加载中…
分享:
WordPress 使用 wp_set_password 重置用户密码
WordPress 使用 wp_set_password 重置用户密码上一篇
WordPress+Nuxt.js+Vue.js开发的前端node项目被停止的处理方案下一篇
WordPress+Nuxt.js+Vue.js开发的前端node项目被停止的处理方案
相关文章
总数:107

WordPress 出现 Allowed memory size of 134217728 bytes exhausted 错误如何修复

当出现"Allowedmemorysizeof134217728bytesexhausted"错误时,意味着PHP内存限制被…
萨龙龙萨龙龙
WordPress
3年前
0
0
2.50W
0

WordPress 媒体库支持 SVG 图标的上传与预览

WordPress默认支持多种图片格式包括.jpg,.jpeg,.png,和.gif,出于安全考虑不能上传可缩放矢量图形(SVG)。SVG是…
萨龙龙萨龙龙
WordPress
7年前
0
0
1.26W
0

WordPress 判断是否在循环中的函数 in_the_loop

WordPress主题开发中,很多时间需要在文章与列表中进行判断从而输出不同的内容,比如文章分类,只想在列表中显示,文章中不显示。列表页面可直…
萨龙龙萨龙龙
WordPress
7年前
0
0
1.09W
0

WordPress MU多站点从子域名转子目录

使用WordPressMU多站点来管理所有的站点确实很方便,可以省去很多重复的工作,节省资源。萨龙网络使用MU多站点已经很久,已经爱不释手,也…
萨龙龙萨龙龙
WordPress
10年前
0
0
2.48W
0

WordPress循环中判断为每篇文章设计不同的样式

新闻视频类Yewan主题的首页文章布局是不规则,文章的布局多样化,这是如何实现的?其实是很简单的,我们在循环中进行判断,每一篇文章都可以输出不同…
萨龙龙萨龙龙
WordPress
10年前
0
0
1.26W
0

WordPress 主题禁用古滕堡编辑器和小工具

WordPress4.9.8版本就发布了古滕堡编辑器,很好用,添加文章也比经典编辑器方便很多。在5.8版本后又在小工具中增加了古滕堡编辑…
萨龙龙萨龙龙
WordPress
4年前
0
0
1.55W
0

WordPress 功能函数—— add_clean_index(向指定的表添加索引)

描述 向指定的表添加索引。 用法 add_clean_index(string$table,st…
萨龙龙萨龙龙
WordPress Functions
7年前
0
0
9.91K
0

WordPress批量替换自定义域名称

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

WordPress 管理面板中禁用主题和插件编辑器

默认情况下,WordPress允许用户通过后台管理面板编辑主题和插件代码。虽然它是一个方便的功能,但对于主题或插件作者没有任何用途,最重要可以防…
萨龙龙萨龙龙
WordPress
7年前
0
0
9.76K
0

禁用 WordPress 裁剪功能包括自动生成的 768 像素图片

WordPress媒体库是很强大、管理媒体相当方便,如果媒体多就给数据库增加了压力,而且很多媒体是不需要上传到媒体库,上传的图片会增加很多无用…
萨龙龙萨龙龙
WordPress
8年前
0
0
1.33W
0

WordPress 最简便的边栏调用方法与提示

WordPress主题文章类型较多,想实现不同的文章类型页面调用不同的边栏,一般的方法是将代码写在主题根目录下的sidebar.php文件…
萨龙龙萨龙龙
WordPress
8年前
0
0
1.20W
0

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

萨龙网络使用的Youji原创企业主题注册登录都是使用WooCommerce商城插件自带的表单,使用简单方便。最近苦于国外机器人注册多,且…
萨龙龙萨龙龙
WooCommerce
7年前
0
0
1.46W
0
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:0
萨龙网络
没有相关内容