带有子菜单项计数的Stacum Walker

时间:2013-03-11 作者:christophrus

我的菜单如下:

-Item1
--Sub1
--Sub2
--Sub3
--Sub4
--Sub5
--Sub6
-Item2
-Item3
想在x子项之后做一些肋骨的事情,所以我必须确定何时达到x。我试图在costum类中定义一个变量,然后在end\\u el()中递增它:

class Walker_Nav_Menu_Costum extends Walker_Nav_Menu {

    var $x = 0;

    function end_el( &$output, $item, $depth = 0, $args = array() ) {

        if ($depth == 1)
        {
            $x++;
        }

        $output .= "<!-- x:".$x."-->";

        $output .= "</li>\\n";
    }
}
但不幸的是,每个元素总是1:-/

如何正确地做到这一点?

1 个回复
最合适的回答,由SO网友:tfrommen 整理而成

在函数内部$x 是本地的。

您可能需要使用静态变量:

class Walker_Nav_Menu_Costum extends Walker_Nav_Menu {
    static $x = 0;

    function end_el( &$output, $item, $depth = 0, $args = array() )
    {
        if ( 1 == $depth ) self::$x++;
        $output .= "<!-- x:".self::$x."-->";
        $output .= "</li>\\n";
    }
}

结束

相关推荐

自定义Walker_NAV_MENU中忽略了START_LVEL

这是我第一个涉及WordPress的项目,我一直在尝试为页脚菜单创建自定义walker。我基本上想从<ul> <li></li> </ul> 结构到a<p> <span></span> </p> 结构菜单和内容正在显示文件,我可以调整start_el 和end_el 函数没有问题,因此我现在得到以下结果:<ul> <span>*link*</span> <span>