WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

zh-cn:导航菜单

导航菜单是在 3.0 版本中加入的新主题特性。它让您方便地将自定义的导航菜单加入主题中。要使主题支持导航菜单,主题作者需要在主题中加入一些代码。

函数参考

注册导航菜单
显示导航菜单

编辑functions.php

首先, 进入您主题的 functions.php 文件, 您需要编写一个函数注册您菜单的名称. (您可以到仪表台的 外观 -> 菜单 中找到它.) 例如, this menu would appear in the "Theme Locations" box as "Header Menu".

function register_my_menus() {
  register_nav_menus(
    array('header-menu' => __( 'Header Menu' ) )
  );
}

这样会多出标题菜单以及其他菜单-

function register_my_menus() {
  register_nav_menus(
    array( 'header-menu' => __( 'Header Menu' ), 'extra-menu' => __( 'Extra Menu' ))
  );
}

然后你需要以下代码来确保在主题中把这些菜单选项打开了-

add_action( 'init', 'register_my_menus' );

以上就是关于如何“注册我的菜单”的过程。你可以看到,你的函数使用了WordPress的"register_nav_menus"功能特性。

现在把菜单的位置添加到你的模板文件中

一旦你完成了上面的步骤,你的主题就已经基本完成了。最后的一步就是告诉主题你想要在网页的哪个位置添加你的菜单了。你需要在所有相关的文件中作出修改。例如,我们可能想在我们的标题页面中插入我们的标题菜单。所以我们在主题编辑器中打开相应的文件(本例中,文件为 header.php),然后我们需要决定菜单的具体放置位置。 每次标题菜单的放置都需要 wp_nav_menu 这段代码 所以,添加如下代码 -

<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>

你所要做的就是要确保主题的地址指向 functions.php 中你为菜单所定义的名字。

(注意,这里使用的 header-menu 带有连接符。 "header-name" 这里是面向程序的,"Header Menu"是面向使用者的,也就是你在WordPress管理页面中所看到的那样。)

为了完成所有的代码,你还可以放置菜单到其他的地方。也许你想要在你的页面的某个角落添加一个菜单 -

wp_nav_menu( array( 'theme_location' => 'extra-menu', 'container_class' => 'my_extra_menu_class' ) );

如果你修改成功了,菜单不仅会在你放置的地方出现,而且可以用CSS修饰你的菜单,而CSS里的类型名是"my_extra_menu_class"(这里代指你的菜单名)。

回到菜单面板中的最后一步

以上就是后台需要完成的所有工作。为了使其完成,你需要只需要在你的管理页面简单的打开 Appearance -> Menus 。现在,你将不会看到那些你的主题不支持菜单的提示,而是会看到主题位置的选项。


所以,现在你可以使用GUI,也就是图形化的工具把你的菜单放置到页面中去了。不要忘记给每个菜单一个名字,然后指派一个下拉式菜单的位置。

外部链接

相关文档

Navigation Menu: register_nav_menus(), register_nav_menu(), unregister_nav_menu(), has_nav_menu(), wp_nav_menu(), wp_get_nav_menu_items()

See also index of Function Reference and index of Template Tags.
本文已被标记为未完成状态。您可以将其补充或翻译完整,以此帮助完善 Codex。