向自定义主题添加菜单支持的不同方法

时间:2016-08-12 作者:Mike

我只是想知道在我的自定义主题中菜单支持的不同方法。我正在将HTML转换为WordPress主题,并希望在功能中使用代码使菜单动态化。php和标题。php。可用的替代方案有哪些。有多少方法可以做到这一点。其中哪一个最好??

非常感谢。

1 个回复
最合适的回答,由SO网友:TheGentleman 整理而成

在wordpress中,实际上只有两种方法可以做到这一点。第一种,我称之为“旧方法”wp_list_pages() 我一般不建议在菜单上使用它。

第二个更好的方法是register_nav_menu(). 要使用它,请将其添加到函数的顶部。php文件。

function register_theme_menus() {
  register_nav_menu(\'main-menu\',__( \'Main Menu\' ));
}
add_action( \'init\', \'register_theme_menus\' );
该代码段创建了一个名为“主菜单”的菜单。你可以重复register_nav_menu() 尽可能多的不同菜单。添加后,您将在WP后端的“外观”下看到一个名为“菜单”的选项,您可以在其中向菜单添加项目。

要显示菜单,请致电wp_nav_menu(array(\'menu\'=>\'main-menu\')) 无论你想把菜单放在哪里。确保它的风格。这将创建以下格式的菜单:

<ul class="menu" id="menu-main-menu">
    <li class="menu-item"></li>
</ul>
您可以将样式添加到菜单样式中。还有.current-menu-item 在保存当前页面的li上。

这里有更多的样式可供使用,查看它们的最简单方法是创建一个菜单,然后在生成的菜单上“查看源代码”。

相关推荐

Use Post ID in functions.php

我的functions.php. 它工作得很好:当预订时,它会给我发电子邮件。易于理解的然而,我希望它能给我发送该预订的post ID,而不仅仅是“你好,世界!”消息帮助function add_to_system() { // get post meta // $email = get_post_meta(\'\',$post_id) // $post_id = get_queried_object_id(); mail(\'michael.mc