Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何让wp_get_nav_menu_项目与家长对子项目进行分组?_Php_Wordpress_Wordpress Theming - Fatal编程技术网

Php 如何让wp_get_nav_menu_项目与家长对子项目进行分组?

Php 如何让wp_get_nav_menu_项目与家长对子项目进行分组?,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,参考功能wp_get_nav_menu_items() 它返回一个对象,其中包含给定菜单的所有菜单项,包括子菜单项,它们在仪表板上的排列顺序。它不会将子菜单项与其父项分组,这会使创建自己的菜单有点困难。是否有方法排列对象,以便将子项分组到其父项的数组中?要解决此问题,您可以更改以下两行: // wordpress does not group child menu items with parent menu items $menuLocations = get_

参考功能wp_get_nav_menu_items()


它返回一个对象,其中包含给定菜单的所有菜单项,包括子菜单项,它们在仪表板上的排列顺序。它不会将子菜单项与其父项分组,这会使创建自己的菜单有点困难。是否有方法排列对象,以便将子项分组到其父项的数组中?

要解决此问题,您可以更改以下两行:

        // wordpress does not group child menu items with parent menu items
        $menuLocations = get_nav_menu_locations();
        $navbar_items = wp_get_nav_menu_items($menuLocations['Navbar']);
        $child_items = [];

        // pull all child menu items into separate object
        foreach ($navbar_items as $key => $item) {
            if ($item->menu_item_parent) {
                array_push($child_items, $item);
                unset($navbar_items[$key]);
            }
        }

        // push child items into their parent item in the original object
        foreach ($navbar_items as $item) {
            foreach ($child_items as $key => $child) {
                if ($child->menu_item_parent == $item->post_name) {
                    if (!$item->child_items) {
                        $item->child_items = [];
                    }

                    array_push($item->child_items, $child);
                    unset($child_items[$key]);
                }
            }
        }

        // return navbar object where child items are grouped with parents
        return $navbar_items;
foreach ($item as $key => $child)
        if ($child->menu_item_parent == $item->post_name) {
与:


要解决您的问题,您可以更改以下两行:

foreach ($item as $key => $child)
        if ($child->menu_item_parent == $item->post_name) {
与:


下面的注释是正确的,因为“菜单项父项”是字符串类型的初始化器,“对象类型”也是字符串类型的初始化器。下面的注释是正确的,因为“菜单项父项”是字符串类型的初始化器,“对象类型”也是字符串类型的初始化器。