我正在尝试为wordpress创建一个主题,所以我已经完成了一个干净的安装。我没有创建条目、页面或菜单。
此时,我正在创建菜单,因此我在functions.php 归档以下函数:
<?php register_nav_menus( array(
\'menu\' => \'Menu superior\',)); ?>
并在我的
header.php 我是这样实现的:
<!-- Menu -->
<nav id="menu">
<h2>Menu</h2>
<?php wp_nav_menu(array(
\'container\' => false,
\'items_wrap\' => \'<ul> %3$s</ul>\',
\'theme_location\' => \'menu\',
)); ?>
</nav>
我意识到,当我运行它时,它并没有给我它添加到我的元素的样式,这些元素是已经创建的页面,在这种情况下是在安装中生成的页面。到目前为止,它看起来是这样的:
然后我转到菜单部分,通过添加元素手动创建了一个菜单。我注意到菜单按照我的要求出现:
这里的问题是,如果我将我的主题提供给那些安装了wordpress的用户,但他们仍然没有创建菜单,那么当我的菜单添加
div
容器到菜单。在那一刻之前创建的页面将被添加,但没有样式。我是否必须向那些获得它的人指定,他们首先必须创建一个菜单,以便应用该样式?或者你能做一些形式,这样从一开始你就可以正确地看到它的风格吗?
我感谢你的帮助!(抱歉,我不得不使用翻译)
SOLUTION
我已解决如下问题:
<!-- Menu -->
<nav id="menu">
<h2>Menu</h2>
<?php
if ( has_nav_menu( \'menu\' ) ) {
wp_nav_menu(array(
\'container\' => false,
\'items_wrap\' => \'<ul> %3$s</ul>\',
\'theme_location\' => \'menu\',
));
}else{
echo "<ul>";
wp_list_pages(\'title_li=\');
echo "</ul>";
}
?>
</nav>
正如Milo所提到的,我必须检查菜单是否仍然不存在才能执行特定操作。