您的浏览器需要启用 JavaScript 才能正常访问此网站。
萨龙网络
登录
首页-WordPress文章-WordPress-正文

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

萨龙龙萨龙龙WordPress3年前213.74W

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

WordPress函数wp_nav_menu_items向菜单列表中添加搜索内容

Wordpress的菜单都是通过后台菜单来添加设置,很多时候需要添加一些功能到菜单,比如搜索,或者购物车,这时我们就可以使用wp_nav_men…
萨龙龙萨龙龙WordPress10年前001.09W0

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

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

修改Woocommerce商品固定链接其它自定义文章类型适用

在更新Concise主题时集成了前端用户中心和商城插件,发现插件中为商城产品文章设置好了固定链接,所以把萨龙网络的作品集与商城的两种自定义类型的…
萨龙龙萨龙龙WooCommerce11年前001.49W0

WordPress为所有文章自动添加自定义字段

Sixianqiu主题是专为诗歌设计开发的主题,有一些朋友也需要这样的多形式博客主题,就整理出来了。一开始所有的文章内容都是居中显示,这样对于其…
萨龙龙萨龙龙WooCommerce9年前001.80W0

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

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

WordPress 功能函数—— add_comments_page(将子菜单页添加到评论主菜单上)

描述 此函数具有一个功能,该功能将用于确定菜单中是否包含页面。 连接到处理页面输出的函数也必须检查用户是否具有所需的…
萨龙龙萨龙龙WordPress Functions7年前002.16W0

WordPress MU多站点设置子站点上传路径和文件的URL地址

为了提高网站的访问速度,萨龙网络也将所有的媒体文件放置在二级域名下,WordPress 3.5以上的版本,隐藏了后台的媒体(Media)设置页面…
萨龙龙萨龙龙WordPress10年前001.65W0

WordPress为分类添加自定义值

在开发一些比较独特的主题过程中,需要自定义很多内容,本文是如何为分类添加自定义缩略图。 将如下代码添加到主题functions.php中:…
萨龙龙萨龙龙WordPress9年前001.16W0

WordPress一行代码允许重复评论的功能

默认情况下WordPress是不允许重复的评论提交,主要是为了防止垃圾评论。有些情况下又需要重复评论,最近用户需要在MNews Pro主题上定制…
萨龙龙萨龙龙WordPress2年前118.95K0

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

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

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

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

WordPress 功能函数—— activate_plugins(激活多个插件)

描述 激活多个插件。 当WP_Error返回,但这并不意味着该插件的一个有错误。这意味着一个或多个插件文件路径无效。…
萨龙龙萨龙龙WordPress Functions7年前009.47K0
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:0
萨龙网络
没有相关内容