如何让 Wordpress 主题支持自定义导航,并符合主题样式

自定义导航乃 Wordpress 3.0 之新功能也。主题支持后,可直接在 Wordpress 后台设置导航项目。可有些主题并不支持这个功能,如何使得它支持呢?

1.修改主题的 functions.php 文件,加上以下代码:

<?php
register_nav_menus(
array(
'mymenu' => __( 'mymenu' )
)
);
?>

2.在主题的适当位置(导航需要放置的位置,或许是在 header.php),将原来的导航代码(或许使用 wp_list_pages() 函数)替换为以下代码:

<?php
$mymenu_args = array(
//最外层容器的标签名,默认div
'container' => '',
//最外层容器的class名
'container_class' => '',
//最外层容器的id名
'container_id' => '',
//导航菜单ul标签的class名
'menu_class' => '',
//导航菜单ul标签的id名
'menu_id' => "",
//是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false
'echo' => true,
//备用的导航菜单函数,用于没有在后台设置导航时调用
'fallback_cb' => 'mymenu',
//显示在导航a标签之前
'before' => '',
//显示在导航a标签之后
'after' => '',
//显示在导航链接名之前
'link_before' => '',
//显示在导航链接名之后
'link_after' => '',
//输出样式,备用:'<ul id=”%1$s” class=”%2$s”>%3$s</ul>'
'items_wrap' => '%3$s',
//显示的菜单层数,默认0,0是显示所有层
'depth' => 0,
//调用一个对象定义显示导航菜单
'walker' => new Walker_Nav_Menu(),
//指定显示的导航名,如果没有设置,则显示第一个
'theme_location' => 'mymenu',
);
wp_nav_menu( $mymenu_args );
?>

好!这样就接近完美了!接下来我们只需要修改下 CSS 所指定的元素了,例如把 .page_item 替换为 menu-item

你不要问我自定义菜单肿么使用,它其实就在 Wordpress 后台的“外观—菜单”。按照本文的方法去做,不要忘记菜单名神马的要写“mymenu”哦!

插话一句:这是我昨天帮一个人修改主题时,查找资料研究出来的。赚了点小费,还清了5元钱,还买了一个域名,嗯哼。

2012-4-28 P.S.更新代码!

全部为采集文章,文中的 联系方式 均不是 本人 的!

发表评论