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(即子菜单需要介于两者之间的 ul
个 li
子元素)。这很可能是没有出现的原因。
因此您必须删除那个 <li>
,并添加一个结尾 </ul>
。但实际上使用 'menu_class' => 'nav__links'
代替 应该就足够了。 ul
和 li
标签内的菜单项自动换行,menu_class
将 class 添加到 ul
.
所以生成的 php 代码将是
<?php
wp_nav_menu(array(
'theme_location' => 'top-menu',
'menu_class' => 'nav__links',
'container' => '',
));
?>
所以我已经将我的 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(即子菜单需要介于两者之间的 ul
个 li
子元素)。这很可能是没有出现的原因。
因此您必须删除那个 <li>
,并添加一个结尾 </ul>
。但实际上使用 'menu_class' => 'nav__links'
代替 应该就足够了。 ul
和 li
标签内的菜单项自动换行,menu_class
将 class 添加到 ul
.
所以生成的 php 代码将是
<?php
wp_nav_menu(array(
'theme_location' => 'top-menu',
'menu_class' => 'nav__links',
'container' => '',
));
?>