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\'
) );
?>