和创建一个定制的WordPress导航菜单。

自学咖网努力为各位打造免费分享知识与教程网站

如果没有菜单和子菜单,WordPress网站什么都不是。在WordPress中根据你的喜好定制这些菜单也非常简单。因此,你的WordPress菜单是一个“前线”工具,可以获得较高的搜索排名,并使访问者留在网站上。

WordPress内部的专用屏幕掩盖了你的菜单有多复杂。您也可以在网站的几个地方显示菜单。如果你有编码技能,你可以定制你的WordPress菜单。几乎有无限的可能性。

在这篇文章中,我们会给你一个创建WordPress菜单的深入指导。我们还将向您展示如何利用这一特性,并以几种不同的方式增强它。

解析WordPress菜单

不同类型的WordPress菜单结构

如何创建自定义的WordPress菜单(3种方式)

如何加强你的WordPress菜单

解析WordPress菜单

对于那些不熟悉的人来说,WordPress菜单通常是链接的集合(包括下拉菜单)。它是一个直接的功能,只是你网站骨架中的一个“椎体”。

自学咖网努力为各位打造免费分享知识与教程网站

WordPress网站菜单示例

我们将在下一节更详细地讨论我们在网站上看到的菜单。现在,你知道,它们可以在任何你想要的地方展示。您可能只有几个预先选择的选项(基于小部件的区域)。但是,从技术上来说,菜单可以放在任何地方。

当然,WordPress的菜单对于网站导航是最重要的。如果你有一个清晰的导航菜单,它会帮助用户浏览你的网站,它会降低你的跳出率。

他们还有另一个目的:你的菜单有助于你的搜索引擎优化(SEO)。为SEO优化WordPress菜单更多的是关于放弃什么,而不是放入什么。对于初学者来说,你可以取消一些元素——比如标签云——并保持你包含的链接数量较少。

虽然谷歌允许你在一个页面上添加多达250个链接,但保持你的“链接价值”是必不可少的。所以,减少外部链接的数量,从长远来看对你是有好处的。

不同类型的WordPress菜单结构

你可能已经明白,你可以根据你的应用程序的需要选择不同的WordPress菜单结构。

例如,标题菜单是最常见的,因为它们处理主网站导航。你还会经常看到主导航顶部的小菜单,因为这是社交媒体图标、搜索栏等的绝佳位置。

SAU/CAL的网站有一个“飞入”菜单,包括导航和社交链接:

自学咖网努力为各位打造免费分享知识与教程网站

SAU/CAL网站飞进菜单

这个菜单说明WordPress菜单的用途比导航网站多。使用WordPress的内置功能(稍后会有更多介绍),你可以为几乎任何你需要的东西创建一个菜单。

和页眉导航一样受欢迎的是页脚。您将经常使用该区域为向下滚动的用户重复您的主要导航。此外,它还是为您的产品和服务提供更多基于上下文的链接的好地方:

自学咖网努力为各位打造免费分享知识与教程网站

闪电底部菜单

如果网站使用边栏,您也会在边栏中看到菜单:

自学咖网努力为各位打造免费分享知识与教程网站

侧边栏导航的例子

虽然在很多情况下你不会在这里看到主导航,但它是一个传统社交链接、博客文章存档和更多内容的地方。

如何创建自定义的WordPress菜单(3种方式)

不管你的专业水平如何,创建一个WordPress菜单是一个简单的过程。主要有三种方式:使用WordPress的内置功能;安装一个合适的插件或者用代码弄脏你的手。

接下来,我们将向你展示如何使用这三种方法创建一个WordPress菜单。

1.使用WordPress的内置功能来创建你的菜单

WordPress有内置的工具来帮助你创建菜单。除了最新用户,所有用户都熟悉WordPress管理中的一个特殊屏幕。

自学咖网努力为各位打造免费分享知识与教程网站

WordPress的菜单界面

当然,使用本地功能创建你的WordPress菜单有很多好处。首先,你和你的网站完全兼容。此外,您可以使用熟悉的界面和本地工具来构建您的菜单。

要做到这一点,请进入WordPress中的外观>菜单页面:

自学咖网努力为各位打造免费分享知识与教程网站

WordPress的菜单链接

这个屏幕被分成几个不同的部分。在顶部,您会发现选择当前菜单或创建新菜单的选项:

自学咖网努力为各位打造免费分享知识与教程网站

菜单选择下拉菜单

如果您决定创建一个新菜单,给它一个名称并检查菜单设置部分。

自学咖网努力为各位打造免费分享知识与教程网站

菜单设置选项

这里有许多复选框,但您需要做出两个主要决定:

自动将顶层页面添加到菜单。这里的“顶层”是指你在WordPress中创建的不是其他页面的子页面的页面。例如,博客文章不是顶级页面,因为在许多情况下,它会有一个父归档页面(例如/blog)。另一方面,联系页面通常是顶级的,因为它通常没有父页面。

菜单位置。每个主题都有自己的菜单位置。除非您更改主题的核心文件,否则主题开发人员已经对这些菜单位置进行了硬编码。有些主题可能允许您通过它们的设置来自定义它们。

准备就绪后,单击“创建菜单”按钮。屏幕将刷新,您将出现在新菜单中。接下来,看看屏幕的左侧:

自学咖网努力为各位打造免费分享知识与教程网站

菜单项的折叠菜单

这个屏幕列出了你网站上所有的文章、页面、分类和其他可链接的资源。您可以通过选中左边的框来设置菜单,然后单击“添加到菜单”按钮。

这将把它们移到菜单屏幕的中心部分:

自学咖网努力为各位打造免费分享知识与教程网站

拖放菜单结构部分中的项目。

在这里,您可以将菜单项拖到适当的位置。如果单击每个项目旁边的展开箭头,还可以为菜单项设置标签,或者删除它。

自学咖网努力为各位打造免费分享知识与教程网站

展开一个菜单项。

一旦你点击保存菜单,你就可以开始了。然而,如果你展开屏幕顶部的屏幕选项菜单,你可以用你的WordPress菜单做更多的事情:

自学咖网努力为各位打造免费分享知识与教程网站

显示选项面板

显示元素组允许你在左边栏显示菜单元框。相反,显示高级菜单属性组可以显示列表项的链接目标、描述和CSS类。

菜单屏幕还有另一个值得注意的方面。自定义链接框允许您设置自己选择的链接,而不是网站上的预定义页面:

自学咖网努力为各位打造免费分享知识与教程网站

自定义链接框

这个选项是你添加社交媒体链接到你的WordPress菜单的方式。平台会根据你选择的网站为你拉出正确的图标,让你有机会为你选择的网站提供一个很好展示的logo。

2.使用插件创建你的自定义WordPress菜单

给WordPress添加功能的直接解决方案是通过插件。上一节已经介绍了为什么WordPress的原生选项几乎是你需要的全部,但是插件可以扩展这个功能。

一个问题是你是否需要一个专门的(和额外的)插件来创建一个WordPress菜单,尽管有很多好的理由这样做。对于新手来说,经常会根据默认设置下无法访问的样式制作菜单。具体响应式设计,“巨型菜单”等。都可以通过插件来实现。

此外,在许多情况下,您可以使用特殊的编辑器来构建菜单,并从预设模板中进行选择。再加上广泛的定制选项,你就有了一个“无代码”的解决方案,它将提供一个适合你的网站的WordPress菜单。

例如,Max Mega菜单插件在你能实现的方面没有任何惊喜:

自学咖网努力为各位打造免费分享知识与教程网站

Max Mega菜单插件

一旦它被安装并激活,你会在WordPress中发现一个新的大菜单面板:

自学咖网努力为各位打造免费分享知识与教程网站

WordPress中的菜单位置链接

如果您查看菜单位置屏幕,您会发现有更多自定义功能可供您使用:

自学咖网努力为各位打造免费分享知识与教程网站

Max Mega菜单的菜单位置屏幕

您还可以应用菜单主题,并在类似于市场上一些最好的页面生成器的范围内编辑它们:

自学咖网努力为各位打造免费分享知识与教程网站

Max Mega菜单中的菜单主题屏幕

我们可以在这里挖掘更多的东西,虽然我们会重复自己。我们鼓励你看看我们之前关于WordPress菜单插件的文章。我们详细介绍了如何选择适合自己的插件以及如何使用。

3.编写代码来创建你的自定义WordPress菜单

编写你自己的WordPress菜单是实现你的勇者目标的可靠方法(或者如果你是一个开发人员,正在创建一个新的WordPress主题)。当然,你不会天天打开代码编辑器去添加菜单。为此,你将使用一个本地WordPress工具(或者一个插件)。

也就是说,如果你想开发主题,学习如何编写WordPress菜单是一个重要的要求。成功有四个部分:

注册您的菜单。

在前端显示WordPress的菜单。

在菜单或其项目中显示额外内容。

定义回调。

让我们假设您熟悉代码编辑器,您有一个可工作的开发环境,并且您的技能很强。如果你还没有可以使用的主题,你可以使用WordPress的默认选项,或者从我们最快的WordPress主题列表中选择一个。

当你准备好了,你应该打开主题的functions.php文件。注意,这与一般WordPress中的同名文件不同。在这里,你需要注册你的菜单。换句话说,你必须告诉WordPress在外观>菜单页面上显示什么。为此,您需要使用register_nav_menus()函数。

function register_my_menus() {register_nav_menus(array(‘header’ => __( ‘Header Menu’ ),’other’ => __( ‘Other Menu’ )));}add_action( ‘init’, ‘register_my_menus’ );

这段代码告诉WordPress中的管理位置标签显示两个菜单:标题菜单和其他菜单:

自学咖网努力为各位打造免费分享知识与教程网站

在WordPress中注册菜单

接下来,你必须使用wp_nav_menu()函数来显示你的菜单。您必须将它添加到与您想要显示菜单的位置相对应的模板文件中。在我们的示例中,我们将使用标题,因此我们将向主题的header.php文件添加以下代码:

wp_nav_menu( array( ‘theme_location’ => ‘header’ ) );

也许这段代码和你的其他菜单一起被包装在if语句中,所以你应该遵循你找到的惯例。

此时,你可以像其他菜单一样在WordPress中工作。但是,您也可以考虑在菜单项中添加额外的内容。例如,您可以扩展已定义的数组,以包含将在输出中呈现的HTML标记:

wp_nav_menu(array(‘menu’ => ‘primary’,’link_before’ => ”,’link_after’ => ”,));

这里的最后一个任务是定义回调。默认情况下,当没有找到指定的菜单时,WordPress会显示一个填充菜单。或者,当没有选择自定义菜单时,WordPress将显示一页菜单。如果这不是您想要的操作,您可以为主题位置参数设置不同的参数,或者添加fallback_cb参数:

wp_nav_menu(array(‘menu’ => ‘primary’,// do not fall back to first non-empty menu’theme_location’ => ‘__no_such_location’,// do not fall back to wp_page_menu()’fallback_cb’ => false));

一旦你理解了如何创建一个WordPress菜单,你就可以开始增强它的功能。我们将在最后一节研究这个问题,为WordPress创建一个自定义菜单元框。

如何增强你的WordPress菜单

因为这部分是高级的,所以我们在继续之前会做一些假设:

你知道如何用PHP创建一个WordPress菜单。

您的PHP技能足够好,可以学习一些高级主题。

你知道如何注册和初始化一个WordPress插件。

这超出了本文的范围,但是你可以使用WordPress plugin codesmith创建一个新的标准化插件模板。

自学咖网努力为各位打造免费分享知识与教程网站

WordPress插件codesmith

当你准备好了,创建你的插件并上传到WordPress:

自学咖网努力为各位打造免费分享知识与教程网站

安装在WordPress的新插件

接下来,导航到插件的文件夹并打开主文件。在这里,添加以下代码:

/*** Add menu meta box** @param object $object The meta box object* @link https://developer.wordpress.org/reference/functions/add_meta_box/*/function custom_add_menu_meta_box( $object ) {add_meta_box( ‘custom-menu-metabox’, __( ‘Authors’ ), ‘custom_menu_meta_box’, ‘nav-menus’, ‘side’, ‘default’ );return $object;}add_filter( ‘nav_menu_meta_box_object’, ‘custom_add_menu_meta_box’, 10, 1);

WordPress的add_meta_box()函数将在WordPress管理中注册一个元数据框。在官方文档中,有几个参数你应该参考一下。我们还使用nav_menu_meta_box_object()过滤器,因为nav-menus.php文件中没有要挂钩的动作。该语句确定函数是否为对象类型添加菜单项的元框。当过滤器运行时,add_meta_box注册一个自定义元框。

定义一个回调函数。

接下来,我们可以定义一个回调函数来生成元框的HTML内容:

/*** Displays a metabox for an author menu item.** @global int|string $nav_menu_selected_id (id, name or slug) of the currently-selected menu*/function custom_menu_meta_box(){global $nav_menu_selected_id;$walker = new Walker_Nav_Menu_Checklist();…}

全局变量记住当前的菜单ID,而$walker存储Walker_Nav_Menu_Checklist对象的新实例。这将构建一个菜单项的HTML列表。

从这里开始,我们必须确定自定义元框中的活动标签。为此,我们将$current_tab的值设置为在前面代码块中设置的省略号内工作。

我们在这里使用两个标签,但是您可以根据需要添加更多标签:

$current_tab = ‘all’;if ( isset( $_REQUEST[‘authorarchive-tab’] ) && ‘admins’ == $_REQUEST[‘authorarchive-tab’] ) {$current_tab = ‘admins’;} elseif ( isset( $_REQUEST[‘authorarchive-tab’] ) && ‘all’ == $_REQUEST[‘authorarchive-tab’] ) {$current_tab = ‘all’;}

下面一行将获取所有具有写权限的用户,并向authors对象添加许多属性:

下面一行将获得所有具有写权限的用户,并向$authors对象添加许多属性:

$authors = get_users( array( ‘orderby’ => ‘nicename’, ‘order’ => ‘ASC’, ‘who’ => ‘authors’ ) );$admins = array();/* set values to required item properties */foreach ( $authors as &$author ) {$author->classes = array();$author->type = ‘custom’;$author->object_id = $author->nickname;$author->title = $author->nickname . ‘ – ‘ . implode(‘, ‘, $author->roles);$author->object = ‘custom’;$author->url = get_author_posts_url( $author->ID ); $author->attr_title = $author->displayname;if( $author->has_cap( ‘edit_users’ ) ){$admins[] = $author;}}$removed_args = array( ‘action’, ‘customlink-tab’, ‘edit-menu-item’, ‘menu-item’, ‘page-tab’, ‘_wpnonce’ );?>

这里,get_users返回由指定参数选择的$user对象的数组。who参数将强制WordPress查询数据库中具有写权限的用户。

此外,$admins数组将存储作者数组,而$removed_args将存储要删除的查询变量列表。

现在你可以打印元盒的标记了。为此,让我们构建标签和链接。

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 和创建一个定制的WordPress导航菜单。