让wordpress支持自定义菜单

WORDPRESS博客有些主题不支持自定义菜单,只能够选择页面和所有的分页目录作为菜单,所以为了解决这一问题,找了一些资料

在这个之前首先对wordpress的wp_nav_menu() 函数应该了解:

使用方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
wp_nav_menu(    
array(
'theme_location' => '' //指定显示的导航名,如果没有设置,则显示第一个
'menu' => 'header-menu',
'container' => 'nav', //最外层容器标签名
'container_class' => 'primary', //最外层容器class名
'container_id' => '',//最外层容器id值
'menu_class' => 'sf-menu', //ul标签class
'menu_id' => 'topnav',//ul标签id
'echo' => true,//是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false
'fallback_cb' => 'wp_page_menu',//备用的导航菜单函数,用于没有在后台设置导航时调用
'before' => '',//显示在导航a标签之前
'after' => '',//显示在导航a标签之后
'link_before' => '',//显示在导航链接名之后
'link_after' => '',//显示在导航链接名之前
'items_wrap' =>
'depth' => 0,////显示的菜单层数,默认0,0是显示所有层
'walker' => ''// //调用一个对象定义显示导航菜单 ));

为了能够使后台支持自定义菜单,我们需要在主题下functions.php下 加入register_nav_menus():

1
2
3
4
5
6
7
8
9
if(function_exists('register_nav_menus')){
register_nav_menus(
array(
'header-menu' => __( '导航自定义菜单' ),
// 还可以在这里添加一些菜单 显示在其他位置
//footer-menu=>__( '页面底部自定义菜单' ),
)
);
}

在添加之后,你就会发现主题位置已经支持一个菜单了

然后找到header.php文件, 类似这样添加:

1
2
3
4
5
6
<?php
wp_nav_menu(array(
'theme_location'=>'header-menu',//填写需要显示的菜单 这是是header的菜单
//还可以做其他设置这里选择默认
));
?>

好了, 大家可以自己制作属于自己的自定义菜单了~

文章目录