引用函数wp_get_nav_menu_items()https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/#
【如何获得wp_get_nav_menu_items与父母分组子项目()】它返回一个对象, 该对象具有给定菜单的所有菜单项, 包括子菜单项, 其排列顺序在仪表板上。它不会将子菜单项与其父项归为一组, 这会使创建自己的菜单有些困难。有没有一种方法可以安排对象, 以便子项在其父项的数组内分组?
#1要解决你的问题, 你可以更改以下两行:
foreach ($item as $key =>
$child)
if ($child->
menu_item_parent == $item->
post_name) {
带有:
foreach ($child_items as $key =>
$child)
if ($child->
menu_item_parent == $item->
object_id) {
#2
// 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;
推荐阅读
- 如何运用U盘打开进入PE安装系统,本文教您如何安
- 如何在WordPress中获取当前页面名称()
- 如何在自定义wordpress主题的foreach循环中获取(打印)类别列表[重复]
- 根据类别添加自定义内容以发布
- 当另一个类进入视口时添加类-适用于测试但不适用于wordpress
- WordPress搜索结果页面上的”添加”按钮
- 如何强制WordPress查询满足所有要求()
- 在nav标签内添加动态wordpress/genesis菜单,并使其隐藏。
- 如何在WordPress主题中修复白屏()