我使用Zurb Foundation在HTML中创建了一个主题,然后将其集成到WordPress主题中。
我的主题中的主要导航部分,最基本的形式是:
<dl>
<dd></dd>
<dd></dd>
<dd></dd>
</dl>
我将wordpress的菜单调用配置为:
wp_nav_menu( array(
'theme_location' => 'primary',
'menu' => '',
'container' => '',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<dl id="tabnav" class="sub-nav">%3$s</dl>',
'depth' => 0,
'walker' => '') );
但是为了将wordpress发出的包裹<li>
更改为<dd>
,我需要编写自定义助行器。
我查看了一些自定义步行器并且可以看到逻辑的一部分,但是每次我想使用自定义html菜单时,创建一个类是唯一/最有效的方法吗?
答案 0 :(得分:0)
digwp提供了比步行者更简单的方法
创建一个从头开始构建菜单的函数。
在你的functions.php
中// custom menu example @ http://digwp.com/2011/11/html-formatting-custom-menus/
function clean_custom_menus() {
$menu_name = 'nav-primary'; // specify custom menu slug
if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
$menu = wp_get_nav_menu_object($locations[$menu_name]);
$menu_items = wp_get_nav_menu_items($menu->term_id);
$menu_list = '<dl>' ."\n";
foreach ((array) $menu_items as $key => $menu_item) {
$title = $menu_item->title;
$url = $menu_item->url;
$menu_list .= "\t\t\t\t\t". '<dd><a href="'. $url .'">'. $title .'</a></dd>' ."\n";
}
$menu_list .= "\t\t\t". '</dl>' ."\n";
} else {
// $menu_list = '<!-- no list defined -->';
}
echo $menu_list;
}
并在你的主题中调用它:
<?php if (function_exists(clean_custom_menus())) clean_custom_menus(); ?>
所以你必须编辑$menu_name
到菜单slug。
这是source