在Wordpress中的1个下拉菜单中添加一个链接包装器

时间:2015-05-08 20:48:05

标签: php wordpress drop-down-menu submenu

所以,我创建了一个自定义walker类,允许我将下拉菜单项包装在容器中,以便我可以添加自定义背景,并控制样式。很多原因,为什么,我和我的团队决定我们这样做。但是,ONE元素的下拉列表现在需要包含在一个标签中以链接到赞助商。当然,我可以操纵自定义Walker,但这会添加到所有目标元素的链接。

所以我想知道的是,是否有可能只针对我需要的ONE下拉列表。让我们说它是li#menu-item-18

这是我的自定义Walker代码

private

1 个答案:

答案 0 :(得分:1)

您可以在自定义类中重新定义父类的start_el方法,但这似乎需要复制很多代码以进行最小的更改(我不喜欢它)。

更好的解决方案是在父方法walker_nav_menu_start_el的末尾使用过滤器挂钩,仅为所需的项添加包装器,如下所示:

add_filter('walker_nav_menu_start_el', function($item_output, $item, $depth, $args){

    if( 18 == $item->ID && 'menu genesis-nav-menu menu-primary' === $args['menu_class'] )

        return sprintf('<div class="targeted">%s</div>', $item_output);

    return $item_output;

}, 10, 4);

根据您的喜好更改包装div