Elementor Header & Footer Builder 制作wordpress的头部和尾部
参考静态模板:https://sc.chinaz.com/moban/240419393850.htm
因为菜单在网站的头部。
如果要自定义一个网站头部,首先要学会自定义菜单。
pre( wp_get_nav_menus() ); // 通过这个可以查看有哪几个菜单。
$menuLocations = get_nav_menu_locations();
pre($menuLocations);
然后参考这里的代码: https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/
https://codecopy.cn/post/5l5vik
function wp_get_nested_menu_array($current_menu) {
$array_menu = wp_get_nav_menu_items($current_menu);
$menu = array();
foreach($array_menu as $m) {
if (empty($m -> menu_item_parent)) {
$menu[$m -> ID] = array();
$menu[$m -> ID]['ID'] = $m -> ID;
$menu[$m -> ID]['title'] = $m -> title;
$menu[$m -> ID]['url'] = $m -> url;
$menu[$m -> ID]['children'] = array();
}
}
$submenu = array();
foreach($array_menu as $m) {
if ($m -> menu_item_parent) {
$submenu[$m -> ID] = array();
$submenu[$m -> ID]['ID'] = $m -> ID;
$submenu[$m -> ID]['title'] = $m -> title;
$submenu[$m -> ID]['url'] = $m -> url;
$submenu[$m -> ID]['parent'] = $m -> menu_item_parent;
if (isset($submenu[$m -> menu_item_parent])) {
$submenu[$m -> menu_item_parent]['children'][$m -> ID] = $submenu[$m -> ID];
$mainparentid = $submenu[$m -> menu_item_parent]['parent'];
$menu[$mainparentid]['children'][$m -> menu_item_parent] = $submenu[$m -> menu_item_parent];
} else {
$menu[$m -> menu_item_parent]['children'][$m -> ID] = $submenu[$m -> ID];
}
}
}
return $menu;
}
$arr = wp_get_nested_menu_array(3);
pre($arr);
==================
html菜单的输出:
<?php
$arr = wp_get_nested_menu_array01('menu-1');
//pre01($arr);
if(count($arr)>0){
foreach ($arr as $k => $v) {
$url = $v['url'];
$name = $v['title'];
$children = $v['children'];
if(count($children)>0){
?>
<li class="menu-item-has-children">
<a href="<?php echo $url?>"><?php echo $name?></a>
<ul class="sub-menu">
<?php
foreach ($children as $k2 => $v2) {
$url2 = $v2['url'];
$name2 = $v2['title'];
if (array_key_exists('children', $v2)) $children2 = $v2['children'];
else $children2 = [];
if(count($children2)>0){
echo '<li class="menu-item-has-children"><a href="'.$url2.'">'.$name2.'</a>';
echo '<ul class="sub-menu">';
foreach ($children2 as $k3 => $v3) {
$url3 = $v3['url'];
$name3 = $v3['title'];
echo '<li><a href="'.$url3.'">'.$name3.'</a></li>';
}
echo '</ul></li>';
} else {
echo '<li><a href="'.$url2.'">'.$name2.'</a></li>';
}
} ?>
</ul>
</li>
<?php
}
else {
echo '<li><a href="'.$url.'">'.$name.'</a></li>';
}
}
}
?>
</ul>
===================