📜  如何在 WordPress 主题中添加自定义导航菜单 - PHP (1)

📅  最后修改于: 2023-12-03 15:24:26.300000             🧑  作者: Mango

如何在 WordPress 主题中添加自定义导航菜单 - PHP

在 WordPress 中,自定义导航菜单是一个非常常见的特性。通过自定义导航菜单,您可以轻松地添加导航链接到您的网站,并在网站的任何位置显示它们。

在本教程中,我们将向您展示如何在 WordPress 主题中添加自定义导航菜单。我们将使用 PHP 编写代码来实现这个目的。

步骤 1 - 在 WordPress 主题中添加菜单支持

要在您的主题中添加自定义菜单,您首先需要在您的主题中添加菜单支持。要实现这一点,您可以在您的主题的 functions.php 文件中添加以下代码:

// Enable menu support
function register_my_menu() {
  register_nav_menu('header-menu',__( 'Header Menu' ));
}
add_action( 'init', 'register_my_menu' );

该代码将使用 init 动作注册一个新的导航菜单。在这个例子中,我们注册了一个名为 header-menu 的菜单,它是在 Appearance > Menus 页面中创建的。

您可能会注意到,我们使用了 __() 函数来包括菜单名称的翻译。这是因为像 Header Menu 这样的字符串应该进行本地化,以便它们可以在不同的语言环境中正确地显示。

步骤 2 - 在主题中显示菜单

要在主题中显示菜单,您可以使用 wp_nav_menu() 函数。该函数的基本用法如下所示:

wp_nav_menu( array(
    'theme_location'  => 'header-menu',
    'container'       => 'nav',
    'container_class' => 'header-menu',
    'menu_class'      => 'menu',
) );

在这个例子中,我们使用 theme_location 参数来指定要显示的菜单位置。我们还通过 containercontainer_class 参数指定了要包含菜单的 HTML 元素和类名。最后,我们使用 menu_class 参数指定了菜单的 CSS 类名。

步骤 3 - 在菜单中显示子菜单

如果您的导航菜单包含子菜单,则可以使用以下代码来显示这些子菜单:

wp_nav_menu( array(
    'theme_location'  => 'header-menu',
    'container'       => 'nav',
    'container_class' => 'header-menu',
    'menu_class'      => 'menu',
    'depth'           => 2,
    'fallback_cb'     => 'wp_bootstrap_navwalker::fallback',
    'walker'          => new wp_bootstrap_navwalker()
) );

在这个例子中,我们使用 depth 参数来设置要显示的子菜单的深度。我们还使用 fallback_cb 参数来指定一个回调函数,当没有菜单项时将使用它。最后,我们使用 walker 参数来指定一种菜单步进器,帮助我们在菜单中设置各种类和元素。

结论

在 WordPress 主题中添加自定义导航菜单是一个非常普遍的任务。在这个教程中,我们向您展示了如何使用 PHP 编写代码来实现这一目的。我们还讨论了如何在菜单中显示子菜单以及如何使用回调函数和菜单步进器。如果您遇到了任何问题或困难,请随时在评论部分中留下您的问题。