Как изменить контейнер меню виджетов - PullRequest
0 голосов
/ 18 октября 2018

Если я добавлю dynamic_sidebar () к теме и в админ-панели вставим виджет меню, wp создаст такую ​​структуру:

<div id="nav_menu" class="widget widget_nav_menu">
    <div class="menu-container">
        <ul id="menu" class="menu">
            <li id="#" class="menu-item">
                <a href="#">Item 1</a>
            </li>
            <li id="#" class="menu-item">
                <a href="#">Item 2</a>
            </li>
            <li id="#" class="menu-item">
                <a href="#">Item 3</a>
            </li>
        </ul>
    </div>
</div>

Как изменить контейнер на nav?И я хочу добавить Шему вот так

<div id="nav_menu" class="widget widget_nav_menu" itemscope itemtype="http://www.schema.org/SiteNavigationElement">
    <nav class="menu-container">
        <ul id="menu" class="menu">
            <li id="#" class="menu-item" itemprop="name">
                <a href="#" itemprop="url">Item 1</a>
            </li>
            <li id="#" class="menu-item" itemprop="name">
                <a href="#" itemprop="url">Item 2</a>
            </li>
            <li id="#" class="menu-item" itemprop="name">
                <a href="#" itemprop="url">Item 3</a>
            </li>
        </ul>
    </nav>
</div>

Спасибо за ответ)

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Вы можете заменить теги на pregreplace.

function change_submenu_class($menu) {  
  $menu = preg_replace('/<div id="nav_menu" class="widget widget_nav_menu">/','/<div id="nav_menu" class="widget widget_nav_menu" itemscope itemtype="http://www.schema.org/SiteNavigationElement">/',$menu);  
  return $menu;  
}  
add_filter('wp_nav_menu','change_submenu_class');

и ту же функцию pregreplace для li и других тегов, которые вы хотите изменить.

0 голосов
/ 18 октября 2018

Чтобы изменить контейнер меню, используйте фильтр * wp_nav_menu_args

Вставьте приведенный ниже код в текущую активную тему файл functions.php

function my_nav_menu_args( $args = '' ) {

       if( 'primary' == $args['theme_location'] )
       {
          if ( $args['container'] == 'div' ) {
              $args['container'] = 'nav';
          }
        }

        return $args;
    }

    add_filter( 'wp_nav_menu_args', 'my_nav_menu_args' );

Длядополнительная помощь: нажмите здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...