众所周知,我们在WordPress的后台,外观–菜单 新建菜单在前端使用wp_nav_menu就可以动态调用.然而小弟今天在使用的时候却怎嘛也调用不出来.这是截图

这是代码:
<div  id="view_navigator_5_277627331" class="yibuSmartViewMargin absPos"   >
    <div class='yibuFrameContent navigator_Style6_Item0 view_navigator_5_277627331_Style6_Item0'><!--nav-->
        <ul id=nav_view_navigator_5_277627331 styleItem=Style6>


            <li class=w_nav_item style=width:20%;*width:19.6%>
                <h3>
                    <a href="<?php echo get_option('home'); ?>" target=_self>
                        <?php
                        if(function_exists('wp_nav_menu')) {
                            wp_nav_menu(array( 'theme_location' => 'primary','menu_class'=>'nav_view_navigator_5_277627331' ) );
                        }
                        ?>
                    </a>
                </h3>
            </li>

        </ul>
        <!--/nav-->
    </div>
</div>

小编遇到的问题是不能保持css样式,而且仅出来两个单页面的菜单,无法全部输出,问题究竟出在那里呢?在网上查了好久,最终找到问题的根源所在.

 

 

 

 

问题结果:

经过一上午折腾和测试,正确的写法应该是这样的:代码如下:

<div  id="view_navigator_5_277627331" class="yibuSmartViewMargin absPos"   >
    <div class='yibuFrameContent navigator_Style6_Item0 view_navigator_5_277627331_Style6_Item0'><!--nav-->
        <ul id=nav_view_navigator_5_277627331 styleItem=Style6>

            <?php
            if(function_exists('wp_nav_menu')) {
                wp_nav_menu(array( 'theme_location' => 'top-menu','menu_id'=>'nav_view_navigator_5_277627331', 'link_before' => '<li class="w_nav_item" style=width:20%;*width:19.6%><h3>', 'link_after' => '</h3></li>', ) );
            }
            ?>

        </ul>
        <!--/nav-->
    </div>
</div>

以下是代码截图:这里要特别注意的是:wp_nav_menu函数中theme_location的值,刚开始小编是从自带模板中拷贝过来的,默认是primary,所以怎嘛在后台修改菜单名称,怎嘛调用都会出问题.
最后在functions.php中找到注册菜单的函数才明白问题出在那里.原来我调用的菜单名称在functions中已经被写死了,
register_nav_menus(array(
   'left-menu' => '左边栏菜单',
   'top-menu' => '顶部菜单',
));这里left-menu和top-menu分别对应后台的显示位置中的  左边栏菜单,顶部菜单.所以在后台必须把你的菜单在此处打上对号,让后在模板中用theme_location' => 'top-menu',这样调用
就会出现想要的结果.同时需要熟悉wp_nav_menu方法的一些变量值,使用link_before和link_after为链接添上css的样式.后台设置如图:
好了,这样就可以实现在模板中调用自定义菜单了.纪录一下我折腾的过程,也希望能帮助到你!