要在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網站。您應該能夠看到自定義的多級菜單顯示在頂部導航欄中。
請注意,上述代碼只是一個示例,您可以根據自己的需求進行修改和定制。另外,確保在修改主題文件之前備份您的文件,以防止意外情況發生。