我开始使用wordpress模板,按照教程,我知道html& css但不是php:(
我希望在以下代码中 class =“nav navbar-nav”(因为是一个twitter bootstrap必要类)更改 class =“menu”:
<ul id="menu-menu-principal" class="menu">
<li class="active">
<a href="http://localhost/?page_id=12">Quiénes somos</a>
</li>
</ul>
我该怎么办?在fuctions.php?怎么样?我可以使用以下代码更改li类,但不能更改class =“menu”:
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($var) {
if(is_array($var)){
$varci= array_intersect($var, array('current-menu-item'));
$cmeni = array('current-menu-item');
$selava = array('active');
$selavaend = array();
$selavaend = str_replace($cmeni, $selava, $varci);
}
else{
$selavaend= '';
}
return $selavaend;
}
答案 0 :(得分:1)
有助行课 http://wpti.ps/functions/extending-wordpress-walker-class/ http://resources.mdbitz.com/2010/08/creating-a-wordpress-custom-page-walker/
Walker在wp_list_pages上呈现HTML。 它使用5个功能: walk,start_lvl,end_lvl,start_el和end_el。
walk,基本上开始输出无序列表和列表项所需的输出。
当元素是前一个元素的子元素并且每个元素的输出以start_el开头时调用start_lv
正如您在wp-includes / classes.php的源代码中看到的那样, start_lvl通常输出无序列表的开头和 给它类'children',end_lvl关闭无序列表 在这两个start_el和end_el中打开和关闭list-item 并输出所有必要的html来显示标题,链接到它等等。
或
步行 此函数逐步执行元素数组,并为每个元素调用必要的start / end_lvl和start / end_el函数。基本逻辑如下: 如果元素是前一个元素的子元素,则调用start_lvl。 对于每个元素,调用start_el后跟end_el。 如果元素不再是子元素,则它调用end_lvl。
start_lvl 将包含子元素的HTML元素开始标记连接到输出。 end_lvl 将包含子元素的HTML元素结束标记连接到输出。 start_el 将对象的HTML表示连接减去关闭HTML标记到输出。 end_el 连接对象的HTML结束标记元素。到输出。