好的,我正在尝试显示我的主菜单,因此我使用以下代码:
<?php $defaults = array(
\'theme_location\' => \'\',
\'menu\' => \'\',
\'container\' => false,
\'container_id\' => \'\',
\'menu_class\' => \'menu\',
\'menu_id\' => \'\',
\'echo\' => true,
\'fallback_cb\' => \'wp_page_menu\',
\'before\' => \'\',
\'after\' => \'\',
\'link_before\' => \'\',
\'link_after\' => \'\',
\'items_wrap\' => \'<ul id="%1$s" class="unstyled pull-right %2$s">%3$s</ul>\',
\'depth\' => 0,
\'walker\' => new description_walker()
); ?>
<?php wp_nav_menu( $defaults ); ?>
菜单中填充了类别名称(非页面),并输出以下内容:
<ul id="menu-principal" class="unstyled pull-right menu">
<li id="menu-item-597" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-597"><a href="#">menu</a></li>
<li id="menu-item-595" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-595"><a href="#">menu</a></li>
<li id="menu-item-596" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-596"><a href="#">menu</a></li>
<li id="menu-item-593" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-593"><a href="#">menu</a></li>
<li id="menu-item-594" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-594"><a href="#">menu</a></li>
<li id="menu-item-592" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-592"><a href="#">menu</a></li>
<li id="menu-item-591" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-591"><a href="#">menu</a></li>
<li id="menu-item-592" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-592"><a href="#">menu</a></li>
<li id="menu-item-591" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-591"><a href="#">menu</a></li>
</ul>
我想用类别名称替换所有这些li类,所以我尝试在函数中使用walker类。php:
https://gist.github.com/1053467所以我只有很少的东西,但我不知道如何添加类。class=“类别类别名称”(即class=“类别摄影”)。
非常感谢您的时间和帮助。
最合适的回答,由SO网友:pcarvalho 整理而成
您的学步课程几乎可以满足您的Gab需求。
代替第21行:
$output .= \'<li>\';
在第38行之前向下移动
$output .= apply_filters(
\'walker_nav_menu_start_el\' [...]
把它改成
$output .= $indent . \'<li id="nav-menu-item-\'. $item->ID . \'" class="\'. $title . \'">\';
你应该将类别名称作为你的li的第一个类
你看,因为你已经构建了漂亮的title$title,你可以使用它来构建li标记,然后像以前一样构建a标记。
编辑:
$mycatid = $item->object_id;
$category = get_category($mycatid );
$mycatslug = $category->slug;
$output .= $indent . \'<li id="nav-menu-item-\'. $item->ID . \'" class="\'. $mycatslug . \'">\';