Edit menu parent element

时间:2017-06-22 作者:jaxczech

我有自定义的菜单和自定义的walker,我有自定义的“li”元素。但如何编辑父元素?

示例菜单

<ul id="some-weirdly-generated-id" data-i-want="some-data-here">
    ...
    <li class="already-custom"> Menu item </li>
    ...
</ul>
我正在编辑“start\\u el(…)”中的“li”元素我的工人的职责。。。

public function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
        $indent = ($depth) ? str_repeat("\\t", $depth) : \'\';      
        $li_attributes = \'\';
        $class_names = \'\'`
        ...
        /* I AM EDITING MY LI ELEMENT HERE */
}
但是我到底在哪里可以编辑“UL”元素呢?Tyvm提示!

1 个回复
SO网友:hwl

对于最顶尖的ul 输出人wp_nav_menu(), 您可以更改列表项的整个换行(ul 或其他方式)使用items_wrap 参数。

wp_nav_menu( array(
    ...
    \'walker\'  => new Your_Nav_Walker_Class(),
    \'items_wrap\' => \'<ul class="your-class" data-u-want="some-data-you-want">%3$s</ul>\',
    ...
));

User example on Codex


用于uls nav walker(子级菜单等)内的输出,您可以使用以下内容:

function start_lvl( &$output, $depth = 0, $args = array() ) {
    $indent = str_repeat("\\t", $depth);
    $output .= "\\n$indent\\n";
}
function end_lvl( &$output, $depth = 0, $args = array() ) {
    $indent = str_repeat("\\t", $depth);
    $output .= "$indent\\n";
}
将$depth更改为不同级别的目标子菜单。

Nav_Walker boilerplate on github

结束

相关推荐

Problem with custom menus

在菜单上,我说的是自定义菜单,我有一个带有几列的页脚,每列都有一个项目列表,每列菜单都需要从wp admin上的菜单选项进行更新,所以我创建了关于函数的部分。调用菜单并在页脚上添加每个菜单的php。php文档,类似于:<?php wp_nav_menu( array(\'menu\' => \'f-1\', \'menu_class\' => \'\', \'container\' => \'nav\' )); ?> <?php wp_nav_menu( arr