0

我正在尝试将类附加到<ul>标签内的<li>标签(即 child <ul>

它用于 Wordpress 菜单,因此我需要为 Walker_Nav_Menu 扩展创建一个函数并在代码中调用它。

我已经能够为任何<li>有孩子的人附加课程,但我还需要为那个孩子开设课程。

我当前的代码在下面并且可以工作(除了伪代码):

class children_classes extends Walker_Nav_Menu {
    function display_element($element, &$children_elements, $max_depth, $depth, $args, &$output) {

        $id_field = $this->db_fields['id'];

    //If the current element has children, add class 'dropdown'
    if(isset($children_elements[$element->$id_field])) { 
        $classes = empty($element->classes) ? array() : (array) $element->classes;
        $classes[] = 'dropdown';
        $element->classes = $classes;

        // Pseudo-code
        Get child ul
          Attach class "dropdown-menu"
        // End psuedo-code
    }

    // We don't want to do anything at the 'top level'.
    if(0 == $depth)
        return parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);

    return parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
    }
}
4

1 回答 1

0

将此添加到您的 Walker 课程中:

function start_lvl(&$output, $depth)
{
    $indent = str_repeat("\t", $depth);
    $output .= "\n$indent<ul class='sub-menu custom-class'>\n";
}

这将覆盖默认的 start_lvl 函数以添加类或您可能需要的任何其他内容,但是您需要。

于 2012-05-08T13:58:37.097 回答