【发布时间】:2017-04-05 04:00:05
【问题描述】:
我从构建静态 html 模板开始我的项目。我的“主要”导航如下所示:
<nav class="site-nav">
<a href="#" class="page-head__logo">
<img src="img/interface/logo.png" alt="Wireforce logo" />
</a>
<a href="#" id="site-nav__toggle">Menu</a>
<ul class="site-nav__list">
<li class="site-nav__item"><a href="#" class="site-nav__link">Services</a></li>
<li class="site-nav__item"><a href="#" class="site-nav__link">Security</a></li>
<li class="site-nav__item"><a href="#" class="site-nav__link">Blog</a></li>
<li class="site-nav__item"><a href="#" class="site-nav__link">About</a></li>
<li class="site-nav__item"><a href="#" class="site-nav__link">Contact</a></li>
</ul>
</nav>
我知道我可以使用 .site-nav li a {} 在 css 中定位 Wordpress 锚点,但我想保持我的 BEM 命名约定以保持一致性。
在functions.php 中,我可以看到使用wp_nav_menu 我可以为容器/ul 指定类,但不能为列表项/锚指定类。谁能推荐实现我所追求的“最佳”方式?做一些阅读,似乎 walker 类可能是要走的路?所以我真的很感激关于这个主题的一些建议,或者是否有更好的方法。
作为参考,我的 wp_nav_menu 脚本目前如下所示:
function html5blank_nav() {
wp_nav_menu(
array(
'theme_location' => 'header-menu',
'menu' => '',
'container' => 'div',
'container_class' => 'menu-{menu slug}-container',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul class="site-nav__list">%3$s</ul>',
'depth' => 0,
'walker' => ''
)
);
}
【问题讨论】: