时间: 2023年 3月 31日 下午5:44
好的,以下是使用 WordPress `wp_nav_menu()` 函数创建导航菜单的基本代码示例:
```php
<nav class="site-navigation" role="navigation">
<?php
$args = array(
'theme_location' => 'primary', // 指定主题位置
'menu_class' => 'nav-menu', // 指定菜单样式类
'container' => false, // 是否包含容器元素
);
// 输出导航菜单
wp_nav_menu( $args );
?>
</nav>
```
上述代码中,`theme_location` 参数用于指定导航菜单的位置,它需要与在 `register_nav_menus()` 函数中注册的位置名称相同。在默认情况下,主题位置名称为 `primary`,因此您可以将其保留或根据需要进行更改。
`menu_class` 参数用于指定导航菜单的样式类,您可以根据自己的需要进行更改。
`container` 参数用于指定是否在导航菜单周围包含一个额外的容器元素,默认情况下为 `true`,如果您不需要包含该元素,则可以将其设置为 `false`。
最后,使用 `wp_nav_menu()` 函数来将导航菜单输出到页面上。您可以将前面声明的 `args` 数组传递给该函数,以便为导航菜单提供配置选项。
以上代码是创建简单的导航菜单的示例,如需更复杂的功能,可以添加其他参数进行设置。例如,如果您想要显示所有菜单项,包括它们的子菜单项,可以在 `args` 数组中添加 `'depth' => 0` 参数。
在上述代码中,没有直接指定菜单名称,而是通过 `theme_location` 参数来指定菜单的位置。具体而言,当您在 WordPress 后台设置菜单时,需要首先注册支持菜单的位置,然后将菜单添加到该位置中。然后,可以通过将对应位置的名称传递给 `theme_location` 参数来获取并输出该位置上的菜单。 因此,菜单名称在这里并不是必需的,而是通过注册菜单位置和将菜单添加到该位置来自动获取的。如果您的 WordPress 站点中只有一个菜单,则可以将菜单的位置设定为 `primary`,并在 `wp_nav_menu()` 函数中使用默认参数,自动获取此位置上的菜单项。
是的,`primary` 是 WordPress 主题中默认使用的菜单位置标识符。如果您在自己的主题中没有注册其它位置,`primary` 就是唯一可用的位置。在 WordPress 后台的外观 > 菜单页面中,您可以将菜单添加到该位置上,使其显示在网站的导航栏中。如果您在主题中注册了多个位置,则可以使用不同的标识符来引用它们,以便在指定位置上显示相应的菜单。这些位置的名称可以根据您的需要进行更改,只需确保在主题代码和后台设置中使用相同的名称即可。
当您设置 `'depth' => 0` 参数时,将会显示菜单的所有项,包括它们的子菜单项。下面是使用 `wp_nav_menu()` 函数将菜单及其子菜单项全部显示的示例代码:
```php
<nav class="site-navigation" role="navigation">
<?php
$args = array(
'theme_location' => 'primary',
'menu_class' => 'nav-menu',
'container' => false,
'depth' => 0, // 显示所有菜单项,包括子菜单项
);
// 输出导航菜单
wp_nav_menu( $args );
?>
</nav>
```
在上述代码中,我们将 `depth` 参数的值设置为 `0`,表示要显示所有菜单项和它们的子菜单项。如果设置为`1`,则将只显示目录和第一级子菜单。默认情况下 `depth` 参数的值为 `0`,即仅显示一级菜单项。
请注意,如果您使用 Bootstrap 等框架来样式化您的导航菜单,则需要确保适当地设置 `depth` 参数,否则某些样式可能无法正确应用。