Im将Superfish集成到WP中。我已经调用了CSS和JS。但是,当我在wp_menu
如下所示,菜单正在消失(see here for rendered output). 有人能帮忙吗(这已经被跟踪了from a not so helpful tutorial)
当前生成的代码是:
<div class="menudiv">
<div class="sf-menu"><ul><li class="page_item page-item-2 current_page_item"><a href="http://rusticblonde.hostizzo.com/">Home</a></li>
<li class="page_item page-item-101"> <a href="http://rusticblonde.hostizzo.com/?page_id=101">test 1</a></li>
<li class="page_item page-item-105"><a href="http://rusticblonde.hostizzo.com/?page_id=105">test 2</a></li>
<li class="page_item page-item-103"><a href="http://rusticblonde.hostizzo.com/?page_id=103">test 3</a></li>
<li class="page_item page-item-98"><a href="http://rusticblonde.hostizzo.com/?page_id=98">Test Page</a></li></ul></div>
</div>
我的标题中有以下内容:-
<?php
wp_nav_menu( array(
\'theme_location\' => \'primary\',
\'container_class\' => \'menudiv\',
\'menu_class\' => \'sf-menu\'
) );
?>
最合适的回答,由SO网友:Chip Bennett 整理而成
查看渲染输出:
<div class="menu sf-menu"><ul><li class="page_item page-item-2 current_page_item">...
看来
\'sf-menu\'
作为类附加到菜单容器,而不是菜单本身。
这个wp_nav_menu()
函数有两个单独的参数:
menu_class
: 应用于菜单列表的CSS类<ul>
菜单标签container_class
: 应用于包含菜单的元素标记的CSS类(默认为<div>
)如果您使用:wp_nav_menu( array(
\'theme_location\' => \'primary\',
\'container_class\' => \'menu-container-class\',
\'menu_class\' => \'menu-ul-class\'
) );
渲染输出应如下所示:<div class="menu menu-container-class"><ul class="menu-ul-class"><li class="page_item page-item-2 current_page_item">...
因此,您使用的container_class
而不是menu_class
在您的wp_nav_menu()
呼叫编辑替换此:
<div class="menudiv">
<?php wp_nav_menu( array( \'theme_location\' => \'primary\', \'menudiv\' => \'menu sf-menu\' ) ); ?>
</div>
。。。使用此选项:<?php
wp_nav_menu( array(
\'theme_location\' => \'primary\',
\'container_class\' => \'menudiv\',
\'menu_class\' => \'sf-menu\'
) );
?>
编辑2好的,我想我知道发生了什么:您没有为\'primary\'
模板位置,这意味着默认的回退菜单(wp_page_menu()
) 正在输出。当这种情况发生时,\'menu_class\'
分配给<div>
包含wp_page_menu()
输出,而不是到<ul>
.由于菜单中生成的CSS类,您可以知道默认菜单回调正在输出:
li class="page_item page-item-2 current_page_item"
如果这是此位置中的实际自定义菜单,则这些类将包括\'menu-item\'
, 而不是\'page_item\'
. 作为参考,请比较CSS classes output by wp_nav_menu()
使用CSS classes output by wp_page_menu()
.根据我们的聊天对话,问题是您正在注册主题位置main
在里面register_nav_menus()
, 但试图调用主题位置primary
在里面wp_nav_menu()
. 轻松修复、更改\'theme_location\' => \'primary\'
到\'theme_location\' => \'main\'
在里面wp_nav_menu()
:
<?php
wp_nav_menu( array(
\'theme_location\' => \'main\',
\'container_class\' => \'menudiv\',
\'menu_class\' => \'sf-menu\'
) );
?>