【问题标题】:PHP/Wordpress - Attach a class to a child <ul>PHP/Wordpress - 将一个类附加到一个孩子 <ul>
【发布时间】:2012-05-08 13:30:16
【问题描述】:

我正在尝试将一个类附加到&lt;li&gt; 标记内的&lt;ul&gt; 标记(即一个孩子&lt;ul&gt;

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

我已经能够为任何有孩子的&lt;li&gt; 附加一个类,但我还需要为那个孩子添加一个类。

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

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);
    }
}

【问题讨论】:

  • 你已经有了 dropdown 的类,改变你的 JavaScript 或 CSS 会不会有帮助?

标签: php wordpress menu children


【解决方案1】:

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

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

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

【讨论】:

  • 哇。极好的!这是完美的。
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 2016-11-30
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多