让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的菜单
        //还可以做其他设置这里选择默认
     ));
?>

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

comments powered by Disqus