我的wp_nav_manu函数在这里:
<?php
wp_nav_menu(
array(
'theme_location' =>'main_nav',
'walker' => new customize_primary_menu()
)
); ?>
步行者课程是:
<?php
class customize_primary_menu extends Walker_Nav_Menu
{
//echo 'sattarNaz'; exit;
function start_lvl($output, $depth = 0, $arg = array() ){
echo 'here';exit;
$indent = str_repeat("\t", $depth);
//print_r($output); exit;
$output = "\n$indent<ul class= \"sattar-menu\">\n";
}
}
这里我把这段代码看作是测试类的sattar-menu。但是当我检查DOM时,没有发现这样的类!我一次又一次地重新检查我的代码。任何帮助都会很棒!
答案 0 :(得分:1)
在要显示此菜单的模板中放置此代码。
if ( has_nav_menu( 'main_nav' ) ) {
$defaults = array(
'theme_location' => 'main_nav',
//'menu' => '',
'container' => 'ul',
'container_class' => '',
'container_id' => '',
'menu_class' => '',
'menu_id' => '',
'walker' => new customize_primary_menu()
);
wp_nav_menu( $defaults );
}
然后在你的功能中你可以尝试这个
public function start_lvl( &$output, $depth = 0, $args = array() ) {
$indent = str_repeat("\t", $depth);
$output .= "\n$indent<ul class=\"sub-menu dropdown-menu\">\n";
}
您还必须创建 function start_el 来自定义菜单。 看看这个答案,它解释了如何在wordpress菜单中添加自定义HTML:https://stackoverflow.com/a/12251157/1627227
完成此操作后,您必须转到调用菜单(wp_nav_menu())的位置。在我链接的答案中,有对wp_nav_menu的完整函数调用。但是你必须添加这一行:'walker'=&gt;新的customize_primary_menu到arguments数组,以在该特定菜单上使用自定义walker对象。
希望你明白了;)