wordpress wp_nav_menu - 将名称属性添加到<a></a>

时间:2011-03-30 08:07:03

标签: menu wordpress-plugin wordpress

在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属性的值应等于链接文本,但小写。即菜单文本是AA,那么name属性应该有aa

1 个答案:

答案 0 :(得分:1)

您可以使用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>