自定义菜单Wordpress:添加属性数据字母=“”;链接名称”;


Custom menu Wordpress: add attribute data-letters="link name"

我有一个自定义菜单:

function mfn_wp_nav_menu() {
    $args = array( 
        'container'         => 'nav',
        'container_id'      => 'menu', 
        'menu_class'        => 'menu', 
        'fallback_cb'       => 'mfn_wp_page_menu', 
        'depth'             => 5,
        'link_before'       => '<span>',
        'link_after'        => '</span>',
    );
}

HTML中的输入是:

<li id="id" class="class">
  <a href="#" data-hash="">
     <span>Start</span>
  </a>
</li>

但我想添加数据字母="链接名称",例如:

<li id="id" class="class">
  <a href="#" data-hash="">
     <span data-letters="Start">Start</span>
  </a>
</li>

有什么想法吗?

您可以这样扩展Walker菜单类:

class MyMenu extends Walker {
    function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
        $output .= sprintf( "'n<li><a href='%s'%s><span data-letters='%s'>%s</span></a></li>'n",
            $item->url,
            ( $item->object_id === get_the_ID() ) ? ' class="current"' : '',
            $item->title,
            $item->title
        );
    }
}

并将其应用于您的菜单:

wp_nav_menu(array(
    'menu'    => 2,  // menu id
    'walker'  => new MyMenu()
    // your other options
));

请参阅参考资料中的此示例:此处