如何将自定义 HTML 添加到 wp_nav_menu?
我熟悉 WordPress 并使用 WordPress 菜单系统。 但我正在寻找一种将自定义 HTML 添加到wp_nav_menu()
。
我正在尝试创建一个这样的菜单:
请注意产品下的下拉菜单如何包含图像和链接。 我想重新创建这个。 我看过一些插件,但宁愿编码。
我不介意硬编码图像和链接,但我想保持使用 WordPress 来管理菜单的灵活性。
解决方案
WordPress 通过菜单页面显示项目的方式是使用 walker 对象。 在这种情况下,此对象的特定类称为 Walker_Nav_Menu。 您可以在wp-includesnav-menu-template.php
找到它。
Walker_Nav_Menu
是一个非常简单的类。 您可以看到链接和菜单结构是如何在那里构建的。 函数start_el
和end_el
用于构建菜单项。 函数start_lvl
和end_lvl
用于嵌套菜单。 在这种方法中,我们将主要使用start_el
和end_el
。
在您的functions.php
创建一个类,使用与父类非常相似的方法来扩展Walker_Nav_Menu
:
class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
function start_el ( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
// Copy all the start_el code from source, and modify
}
function end_el( &$output, $item, $depth = 0, $args = array() ) {
// Copy all the end_el code from source, and modify
}
}
在这些函数中, $item
是您的菜单项,如果您愿意,您可以使用它根据当前菜单项查询其他内容。 请注意,我没有包含start_lvl
和end_lvl
,但这并不重要,因为您的类将自动继承父类方法,如果没有被覆盖。
然后,在您的主题文件中,您可以像这样调用 wp_nav_menu:
wp_nav_menu(array(
'theme_location' => 'main',
'container' => false,
'menu_id' => 'nav',
'depth' => 1,
// This one is the important part:
'walker' => new Custom_Walker_Nav_Menu
));
WordPress 将使用您自定义的类和函数,以便您可以修改输出的代码。
你可能还喜欢下面这些文章

//demo.imwpweb.com/wpnovo/多设备支持主题支持PC和移动端界面,独立设置,互不干扰。移动端首页(右)图:小说页面PC端和移动端的展示付费订阅主题支持付费订阅功能,支持付费单章订阅、整本小说订阅模式。

什么是内链内链,顾名思义就是在同一网站域名下的内容页面之间的互相链接(自己网站的内容链接到自己网站的内部页面,也称之为站内链接)。自动内链工作原理简单来说,我们设定一些词表以及词表对应的链接,比如词是wordpress插件,链接是http

这款插件的核心功能就是一点:找出文章中的违禁词、敏感词等措辞不当的词语,替换成你设置的更合适的词或者直接替换“*”号。请注意,需要同时下载站长工具箱和违禁词屏蔽插件,安装插件时也需要两个插件同时安装。

2、自动生成的图片并非真实在磁盘中的图片,而是动态生成的,如果保存到磁盘会占用大量空间,这个空间没必要浪费,因此修改主题代码,直接将缩略图的地址改为wpac自动生成的缩略图地址是一个非常好的方案。

wprec利用相似度算法计算每篇文章之间的相似度,找到与当前文章最相似的一些文章,展现在文章底部作为相关文章。我们知道,相关推荐插件推荐的原理是根据当前文章的特征(文章的高权重标签),从文章库中召回相关文章,再根据相关性评分,最后选出To