让WordPress主题支持菜单功能?

目前WordPress 3.0 RC已发布,新版增加了许多功能,可能喜欢尝鲜的朋友已迫不及待地升级了自己博客,利用原来2.9.2版的中文语言文件基本汉化了大部分菜单,只有少部分还是英文的,其中在主题选项中多出一个Menus功能,一个可以方便灵活地向导航菜单添加自定义内容的新功能。但当你打开这个选项时会提示“The current theme does not natively support menus, but you can use the “Custom Menu” widget to add any menus you create here to the theme’s sidebar.”大概的意思是:当前的主题不支持菜单功能,但你可以把利用这一“菜单”功能,添加的自定义菜单应用到主题侧边栏中,也就是小工具(E文盲,翻译的不好别见笑)。然而当你启用3.0版默认主题Twenty Ten后,这个提示就消失了,看来是新的默认主题针对3.0功能进行了优化。

原来在默认主题functions.php中有一句:

// This theme uses wp_nav_menu() in one location. register_nav_menus( array( ‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ), ) );

把这句代码添加到当前主题functions.php模板文件中,提示也消失了,关键就是这句了。

但只修改这里,并不会真正在主题导航菜单上启用这个功能,只会在侧边小工具中多出custom menu小工具一项,还需修改导航部分代码,才会体验到新的功能。 一般主题导航部分代码为:

<?php wp_list_pages('title_li='); ?>

或:

<?php  wp_list_categories('sorderby=name&depth=4&title_li='); ?>

改为

<?php wp_nav_menu( 'id=navbar' ); ?>

也可以根据自己使用的主题功能修改为类似:

<?php wp_nav_menu( 'id=navbar&menu_class=headermenu' ); ?>

主题改造完成,在后台就可以设定你的自定义菜单了。