Walker_Nav_Menu:项目嵌套不正确

时间:2018-10-10 作者:Rozo

我想在每个有子项的“列表项”旁边添加“锚定”标记。

这是我的Walker\\u Nav\\u菜单类:

class Menu_Walker extends Walker_Nav_Menu {

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

    $ident = str_repeat( "\\t", $depth );

    if ( $args->walker->has_children ) {

        $classes = \'menu-item-has-children menu-item menu-item-\' . $item->ID;

        // actual link
        $output .= "$ident<li class=\\"$classes\\"><a href=\\"$item->url\\">$item->title</a></li>\\n";

        // added tag after
        $output .= "<a class=\\"added\\" href=\\"#\\">txt</a>";

    } else {

        $classes = \'menu-item menu-item-\' . $item->ID;

        // actual link
        $output .= "$ident<li class=\\"$classes\\"><a href=\\"$item->url\\">$item->title</a></li>\\n";
    }
}
这是WordPress中菜单的结构:

enter image description here

但输出没有正确嵌套,如下图所示:

enter image description here

请帮我解决这个问题

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

您有这个问题,因为您的代码;)

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

    $ident = str_repeat( "\\t", $depth );

    if ( $args->walker->has_children ) {

        $classes = \'menu-item-has-children menu-item menu-item-\' . $item->ID;

        // actual link
        // you SHOULDN\'T close the li tag in here
        $output .= "$ident<li class=\\"$classes\\"><a href=\\"$item->url\\">$item->title</a></li>\\n";

        // added tag after
        $output .= "<a class=\\"added\\" href=\\"#\\">txt</a>";

    } else {

        $classes = \'menu-item menu-item-\' . $item->ID;

        // actual link
        // you SHOULDN\'T close the li tag in here
        $output .= "$ident<li class=\\"$classes\\"><a href=\\"$item->url\\">$item->title</a></li>\\n";
    }
}
在您的start_el 您关闭li 标签,所以孩子们不能在里面打印。。。

结束

相关推荐

Appearance > Menus

我已经添加了自定义WordPress管理菜单和页面,但是,我希望它出现在“外观>菜单”部分,以便用户可以将其添加到其网站的菜单结构中。请让我知道如何做到这一点。以下是我在管理页面上添加的自定义菜单示例:现在,我想在管理部分的外观>菜单中添加这些自定义页面:如果有人能帮忙,我将不胜感激。幸亏damienoneill2001, 我可以在外观>菜单中添加分类项,但是,如何在示例中的Generes/Writer中添加内容?这就是我添加自定义管理菜单的方式,我希望它们中的每一个(产品、促销、产品类