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) 或自定义模板中调用。