Wordpress中修改自定义导航菜单标签输出格式
wordpress自3.0版本后增加了一个自定义导航菜单的功能,但是默认生成的菜单会被包含在<li></li>
列表标签中,对于修改主题来说甚为不便。
从wp_nav_menu()
中移除<li>
标签,网上给出的解决方案是使用strip_tags()
函数:
<?php
echo strip_tags(wp_nav_menu(
array('theme_location' => 'primary',
'container_class' => 'user_menu',
'echo' => false,
'items_wrap' => '%3$s<div class="clear"></div>')
), '<a><div>');
?>
Y.CHEUNG用的是官方给出的办法,用wp_get_nav_menu_items()
函数自定义菜单的输出格式,代码如下:
<?php
$menu_name = 'aboutnav';//菜单位置location,与functions.php文件中的参数一致
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);
foreach ((array)$menu_items as $key => $menu_item){
$title = $menu_item -> title;
$url = $menu_item ->url;
$menu_list .= '<tr><td width="26" height="33"><div align="right"><img src="'.get_template_directory_uri().'/images/about_09.jpg" width="9" height="8"></div></td>
<td width="203"> <a href="'.$url.'" class="black14b">'.$title.'</a></td></tr>';//自定义菜单每条项目item输出的格式
}
}else{
$menu_list = '<tr><td width="26" height="33"><div align="right"><img src="'.get_template_directory_uri().'/images/about_09.jpg" width="9" height="8"></div></td>
<td width="203">Menu "' . $menu_name . '" not defined.</td></tr>';
}
echo $menu_list;
?>
以上代码皆按需放置在template.php
中相应导航菜单需要输出的位置。