WordPress 原生的菜单系统非常强大,基本可以满足建站需要,不用再安装其它插件了。本文主要介绍如何创建 WordPress 菜单,WordPress 菜单的高级用法,并简单看一下菜单相关的代码。

如何创建菜单

访问仪表盘-> 外观-> 菜单,打开菜单界面。要使一个菜单生效,你只需要注意两个地方。

一、屏幕右侧创建菜单的地方,点击加号就可以创建一个新的菜单,菜单的名字只是用来区分菜单的,不会在前台显示出来。

二、菜单位置,例如新创建的菜单应该放在页首还是页脚,或者是侧栏?必须为菜单指定一个位置,菜单才能在前台显示。

创建菜单的方法很简单:

1. 通过屏幕右侧的添加菜单按钮,将页面或分类添加到菜单里。

2. 用拖拽的方式改变菜单的顺序,控制菜单的层级关系。 WordPress 允许你创建 2 层、 3 层甚至无数层菜单,只要你的主题支持。

3. 点击 「保存菜单」 保存你的菜单项目,点击 「主题位置」 处的 「保存」 按钮让菜单位置生效。

高级应用

WordPress 菜单隐藏了一些功能,如果你想控制菜单更多的属性,不妨点击屏幕右上角的显示选项,让隐藏的功能都显示出来,隐藏的功能允许你:

  • 可以选择更多的菜单项目种类,例如标签和文章。
  • 给某个菜单项添加 class,通过 css 是这个菜单项与众不同;
  • 通过链接关系关系网 (XFN) 给菜单添加 rel 属性,例如不想搜索引擎跟随这个菜单,可以为其添加 rel="nofllow"属性。
  • 控制菜单打开方式,在新窗口打开 (target="_blank") 或在当前窗口打开。
  • 如何在主题中创建新的菜单

要添加新的菜单,只需要两个步骤

1. 在当前主题的 functions.php 中注册一个新的菜单,例如 twentyeleven 主题中的菜单是这样注册的 (functions.php line 101)

1
2
3
4
5
6
7
8
add_action( 'after_setup_theme', 'twentyeleven_setup' );
if ( ! function_exists( 'twentyeleven_setup' ) ):
function twentyeleven_setup() {
    //其它代码
    // This theme uses wp_nav_menu() in one location.
    register_nav_menu( 'primary', __( 'Primary Menu', 'twentyeleven' ) );
}
endif; // twentyeleven_setup

register_nav_menu()函数是用来注册菜单位置的,有了位置,就可以往这个位置分配自己在后台创建的菜单了。

2. 定义了一个菜单位置,那么这个位置究竟在哪里呢,还要写代码告诉主题。在 twentyeleven 的 header.php 中,可以找到调用这个菜单的代码

1
2
/* Our navigation menu.  If one isn't filled out, wp_nav_menu falls back to wp_page_menu. The menu assiged to the primary position is the one used. If none is assigned, the menu with the lowest ID is used. */ ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

我们创建的菜单位置叫 primary,所以用 wp_nav_menu()函数调用时,只需要告诉函数菜单的位置名称是什么就可以了。

你可以按照上面的步骤创建多个菜单位置,可以在侧栏 (sidebar.php) 、页脚 (footer.php) 或自定义模板中调用。

图说 WordPress 菜单

图说WordPress菜单