wordpress代码

自定义wordpress菜单 - 制作一个wordpress头部效果

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>

===================