wordpress wp_nav_menu - добавить свойство name к <a> - PullRequest
1 голос
/ 30 марта 2011

в WordPress, я загружаю меню, используя функцию wp_nav_menu().В нем будут перечислены меню в следующей форме.

<ul>
   <li><a href="url">AA</a></li>
   <li><a href="url">BB</a></li>
   <li><a href="url">CC</a></li>
</ul>

Я хочу добавить еще одно свойство в тег.Я хочу это в следующем виде.

<a href="url" name="aa">AA</li>
<a href="url" name="bb">BB</li>
<a href="url" name="cc">CC</li>

name свойство должно иметь значение, равное тексту ссылки, но в нижнем регистре.т. е. если текст меню АА, то свойство name должно иметь

1 Ответ

1 голос
/ 30 марта 2011

Вы можете сделать это с Wordpress Walkers . Сначала они могут быть немного хитрыми, но очень мощными. Это грубая реализация, вам, вероятно, потребуется улучшить ее.

Сначала вы расширяете Walker_Nav_Menu под свои нужды:

  class my_nav_menu extends Walker_Nav_Menu
      {
            function start_el(&$output, $item, $depth, $args)
            {
                 $output .= '<li><a href="' . get_post_link($item->ID) . '" name="' . $item->post_name .'" >';
                 $output .= apply_filters( 'the_title', $item->post_title, $item->ID ) ;
                 $output .= '</a></li>';
            }
      }

Затем вы передаете экземпляр вашего класса в wp_nav_menu:

wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' , 'walker' => new my_nav_menu() ) );

Это выведет элементы меню следующим образом:

<li><a name="test-page" href="http://mydomain.foo/?page_id=1">Test Page</a></li>
...