我只能想象,由于您正在添加类和ID,这是为了设计样式。我真的不明白这有什么意义。这是通用WP菜单的确切结构,对于类和ID:
当前页面获取一类“当前菜单项”,因此不需要id。只需像这样指向它:
nav .current-menu-item
如果任何菜单项有子菜单项,则会得到一个“菜单项有子菜单项”类,因此您可以使用该类选择li,然后选择其后面的直接子菜单项,如下所示:
.menu-item-has-children > a
将自动创建li中另一个带子级的ul,因此您可以像这样选择它,从而避免在嵌套ul的子级上需要“sf with ul”类:
.menu-item-has-children > a ul li
对我来说,walker适用于更复杂的任务,如从后端检索数据,然后用这些数据更改菜单,例如向HREF添加html数据属性。再说一遍,我不知道你想达到什么目的,但这只是一种风格,在我看来,步行者在这种情况下是一种过火的行为。