【发布时间】:2015-08-19 09:39:29
【问题描述】:
我有以下代码:
$nav_menu_args = array('fallback_cb' => '','menu' => 'menu', 'menu_class' => 'menu_class');
$x = wp_nav_menu( apply_filters( 'widget_nav_menu_args', $nav_menu_args, 'menu', $args ) );
$pattern = '#<ul([^>]*)>#i';
$replacement = '<ul$1 data-attr="abc">'; // this is a wrong
echo preg_replace( $pattern, $replacement, $x );
我正在尝试通过更改模式将data-attr 添加到ul,而不通过Walker_Nav_Menu 进行更改。
我想做的是有一个这样的列表:
<ul class="menu_class" data-attr="abc">
<li><li>
<li>
<ul>
<li></li>
</ul>
<li>
</ul>
但是我的内部 ul 上也有一个 data-attr,就像这样。
<ul class="menu_class" data-attr="abc">
<li><li>
<li>
<ul data-attr="abc">
<li></li>
</ul>
<li>
</ul>
我错过了什么?
【问题讨论】:
-
是不是内部ul也加了data-attr的问题?
-
是的。我想在 ul 中添加 data-attr。
-
感谢您的帮助。我设法通过 $nav_menu_args 解决了这个问题。
-
你的意思是像我刚刚在我的答案中编辑的?否则,用解决方案回答您自己的问题并将其标记为正确,以便其他人可以找到相同的解决方案。
标签: php wordpress menu nav custom-data-attribute