我的菜单如下:
-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:-/
如何正确地做到这一点?
最合适的回答,由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";
}
}