向wp_NAV_MENU生成的包装器html添加属性

时间:2021-10-25 作者:Angel Hess

我想在wp\\u nav\\u菜单生成的默认div html中添加一些额外的html属性。我需要添加简单的代码,例如短样式代码:style="top:10px;"我无法在css文件中执行我正在执行的操作需要在php中添加html。我看过很多Walker的例子,替换代码,比如str\\u replace。我找不到一个能完全按照我设想的方式运行的解决方案。我不喜欢仅仅为了做这个简单的代码添加而使用10页长的walker代码。如果没有简单的方法,另一种方法是将菜单包装在第二个div中,如果找不到其他方法,我可能会这样做;但我更愿意学习一种简单的方法,将html代码添加到由wp\\u nav\\u menu生成的原始div中。

1 个回复
SO网友:jdm2112

修改的包装器wp_nav_menu() 可使用自定义items_wrap 参数https://developer.wordpress.org/reference/functions/wp_nav_menu/

文档声明默认包装器是<ul> ID为CLASS属性的元素。可以通过修改传递给sprintf() 使用的函数wp_nav_menu().

的值items_wrap 为包装器传递的参数。输出a<div> 具有样式属性的元素:

wp_nav_menu( array( \'items_wrap\' => \'<div style="css here">%3$s</div>\' ) );
The%3$s 在示例中,表示包装器HTML中的项。

相关推荐

WordPress中声明SplitMenuWalker::Walk($Elements,$max_Depth)时出现警告

我开始在WordPress网站上收到以下错误:警告:SplitMenuWalker::walk($elements,$max\\u depth)的声明应与/home/relati67/public\\u html/wp content/themes/mentis/inc/mega menu/split menu中的walk::walk($elements,$max\\u depth,$args)兼容。php第0行我不知道在这里该怎么办。我发现了一个具有类似内容的线程,但错误指向特定行(不是第0行),并且不