标签: 自定义菜单

  • 为wordpress添加自定义多级菜单的方法

    要在WordPress中创建多级菜单,您需要使用递归函数来处理菜单项的嵌套关系。下面是一个示例代码,可以帮助您实现多级菜单的添加和显示:

    打开您的WordPress主题文件,通常是header.php或functions.php。
    在主题文件中添加以下代码来注册菜单位置:

    register_nav_menus(array(
      'primary' => '主菜单',
    ));


    接下来,在主题文件中找到导航菜单的代码部分,通常是使用wp_nav_menu函数的地方。将其替换为以下代码:

    wp_nav_menu(array(
      'theme_location' => 'primary',
      'container' => 'nav',
      'container_class' => 'navbar',
      'menu_class' => 'navbar-nav',
      'fallback_cb' => 'WP_Bootstrap_Navwalker::fallback',
      'walker' => new WP_Bootstrap_Navwalker(),
    ));


    然后,在主题文件中添加以下自定义函数来创建多级菜单:

    function recursive_menu($items, $depth, $current_page, $parent_id = 0) {
      foreach ($items as $item) {
        if ($item->menu_item_parent == $parent_id) {
          $children = recursive_menu($items, $depth + 1, $current_page, $item->ID);
          if ($children) {
            echo '<ul class="dropdown-menu" role="menu">';
            echo '<li class="dropdown-item" role="presentation">' . $item->title . '</li>';
            echo $children;
            echo '</ul>';
          } else {
            echo '<li class="nav-item' . ($item->object_id == $current_page ? ' active' : '') . '" role="presentation">' . $item->title . '</li>';
          }
        } else {
          echo '<li class="nav-item' . ($item->object_id == $current_page ? ' active' : '') . '" role="presentation">' . $item->title . '</li>';
        }
      }
    }


    现在,您可以使用上述的递归函数来渲染多级菜单。将以下代码添加到您的主题文件中的适当位置,例如header.php或functions.php:

    function wp_bootstrap_navwalker() {
      $args = array(
        'theme_location' => 'primary',
        'walker' => new WP_Bootstrap_Navwalker(),
      );
      return $args;
    }

    最后,保存文件并刷新您的WordPress网站。您应该能够看到自定义的多级菜单显示在顶部导航栏中。

    请注意,上述代码只是一个示例,您可以根据自己的需求进行修改和定制。另外,确保在修改主题文件之前备份您的文件,以防止意外情况发生。