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)

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中,可以找到调用这个菜单的代码

/* 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菜单

3条留言

  1. 我最近在制作主题,自己创建了个fuction,也按照你的方式注册了菜单了。目前也能调用到导航去。问题是现在是我把一些链接放在菜单的子目录,也就是下拉菜单时,就无法实现。请问缺乏那块的代码?

    1. 是你主题不支持子菜单,换默认主题试试

评论功能已关闭