wp_nav_menu 一无所获

wp_nav_menu Returning nothing

所以我已经将我的 HTML 网站移至 wordpress,我的菜单出现问题。 None 的管理面板中列出的链接通过。

header.php代码:

<nav>
<?php
wp_nav_menu(array(
  'theme_location' => 'top-menu',
  'items_wrap'=> '<ul class="nav__links"><li>',
  'container' => '',
));
?>
</nav>

这是导航栏html:

<nav>
  <ul class="nav__links">
    <li><a class="un" href="#">Home</a></li>
    <li><a class="un" href="#">Services <i class="fas fa-chevron-down"></i></a>
      <ul class="dropdown">
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
        <li><a href="#">Broadband</a></li>
      </ul>
    </li>
    <li><a class="un" href="#">Customers</a></li>
    <li><a class="un" href="#">News & Blog</a></li>
    <li><a class="un" href="#">About us</a></li>
    <li><a class="un" href="#">Contact</a></li>
  </ul>
</nav>

我的 functions.php 文件中的代码:

function wp_custom_new_menu() {
register_nav_menus(
  array(
    'top-menu' => __( 'Top Menu' ),
    'mobile' => __( 'Mobile Menu' )
  )
);}add_action( 'init', 'wp_custom_new_menu' );

这是正在拉取的内容:

<nav>
<ul class="nav__links"><li>    </li></ul></nav>

我不完全确定为什么要这样做,确实在 wordpress 管理区域中创建了一个菜单。显示位置顶部菜单也已检查。

任何指点都很好。

谢谢, 希兹

items_wrap' 通常定义包装菜单 li 元素的元素,因此在此处使用 <li> 标记(就像在您的代码中一样)会导致 li元素作为 li 的直接子元素,这是无效的 HTML(即子菜单需要介于两者之间的 ulli 子元素)。这很可能是没有出现的原因。

因此您必须删除那个 <li>,并添加一个结尾 </ul>。但实际上使用 'menu_class' => 'nav__links' 代替 应该就足够了。 ulli 标签内的菜单项自动换行,menu_class 将 class 添加到 ul.

所以生成的 php 代码将是

<?php
 wp_nav_menu(array(
  'theme_location' => 'top-menu',
  'menu_class' => 'nav__links',
  'container' => '',
 ));
?>