要获取WordPress菜单的树形结构数组并创建自定义的通用菜单,您可以使用WordPress的内置函数和一些自定义代码。以下是一个示例,展示如何实现这个功能:

获取 WordPress 菜单树形结构数组自定义万能菜单

  1. 首先,您需要在主题的 functions.php 文件中添加以下代码来获取菜单的树形结构数组:
function get_menu_tree($menu_name) {
    // 获取指定菜单的ID
    $locations = get_nav_menu_locations();
    $menu_id = $locations[$menu_name];

    // 获取菜单的所有项
    $menu_items = wp_get_nav_menu_items($menu_id);

    // 创建一个树形结构的数组
    $menu_tree = array();
    foreach ($menu_items as $menu_item) {
        $menu_tree[$menu_item>menu_item_parent][] = $menu_item;
    }

    return $menu_tree;
}
  1. 然后,您可以使用以下代码调用此函数并生成自定义通用菜单:
function custom_menu() {
    $menu_name = 'your_menu_name'; // 替换为您的菜单名称

    $menu_tree = get_menu_tree($menu_name);

    // 输出通用菜单
    echo '<ul id="custommenu">';
    foreach ($menu_tree[0] as $menu_item) {
        echo '<li><a href="' . $menu_item>url . '">' . $menu_item>title . '</a>';
        if (isset($menu_tree[$menu_item>ID])) {
            echo '<ul>';
            foreach ($menu_tree[$menu_item>ID] as $sub_menu_item) {
                echo '<li><a href="' . $sub_menu_item>url . '">' . $sub_menu_item>title . '</a></li>';
            }
            echo '</ul>';
        }
        echo '</li>';
    }
    echo '</ul>';
}
  1. 最后,在您的主题模板文件中,您可以调用 custom_menu() 函数来显示自定义通用菜单:
<?php custom_menu(); ?>

确保将 'your_menu_name' 替换为您的WordPress菜单的名称。

通过执行以上步骤,您将能够获取菜单的树形结构数组并创建自定义通用菜单。这个自定义通用菜单可以在您的主题中的任何地方调用,以显示菜单的树形结构。