使用菜单漫游在菜单项的末尾添加自定义项

时间:2012-05-16 作者:v3nt

我需要在列表项的菜单末尾添加一个搜索字段。

我一直在看walkers,但发现很难找出最后一项是什么(甚至很难得到总数)。另外,我应该在哪里添加自定义项的代码。

我现在有;

class mainNav_walker extends Walker_Nav_Menu
{
    public function start_el( &$output, $item, $depth, $args )
    {
        //print_r($item);

        $output .= $this->custom_content( $item );
        parent::start_el( &$output, $item, $depth, $args );
    }

    protected function custom_content( $item )
    {
       // add <li>SEARCH FIELD HERE?</li>
    }
}

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

在这种情况下,你不需要助行器。名为wp_nav_menu_items 可用。它允许您编辑菜单的列表项。只需在搜索字段中附加您自己的列表项。

add_filter( \'wp_nav_menu_items\', \'add_search_to_nav\', 10, 2 );

function add_search_to_nav( $items, $args )
{
    $items .= \'<li>SEARCH</li>\';
    return $items;
}
注意:如果只想针对特定菜单,则存在动态过滤器:

wp_nav_menu_{$menu->slug}_items

结束

相关推荐

如何将参数传递给我的自定义Walker?

我已经设置了一个自定义walker,当我硬编码我的变量时,它可以根据需要工作。我想要的是能够调用我的walker,并将walker中使用的变量传递给它。例如: \'walker\' => new Plus_walker($refine => \'review\'), 我调整输出的步行器http://URL/review 以便在此菜单项的“审阅”类别中查找帖子。但我希望能够使用同一个助行器进行“预览”、“采访”等。到目前为止,我输入变量的尝试打破了“解析错误:语法错