簡體   English   中英

將數據屬性添加到wp_nav_menu

[英]Add data attribute to wp_nav_menu

我有以下代碼:

$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 Walker_Nav_Menu添加到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

echo preg_replace( $pattern, $replacement, $x, 1 ); // 1 at the end to replace only the first occurence

或者只需更改wp_nav_menu的items_wrap鍵。

$nav_menu_args = array('fallback_cb' => '','menu' => 'menu', 'items_wrap' => '<ul class="menu_class" data-attr="abc">%3$s</ul>');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM