个性化wordpress菜单类

时间:2013-08-06 18:25:59

标签: php wordpress

我开始使用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;
        }

1 个答案:

答案 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结束标记元素。到输出。