首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果菜单有子菜单,如何将<i>项添加到wp_nav_menu中

在WordPress中,可以使用wp_nav_menu函数来生成菜单。如果菜单具有子菜单,可以使用wp_nav_menu函数的items_wrap参数来自定义输出。下面是将子菜单项添加到wp_nav_menu中的步骤:

  1. 首先,需要在WordPress的后台创建一个菜单,并添加菜单项和子菜单项。这可以通过导航菜单功能来完成,位于“外观” -> “菜单”。
  2. 打开你的主题文件(通常是header.phpnavigation.php),找到使用wp_nav_menu函数的代码。
  3. wp_nav_menu函数中,可以使用items_wrap参数来自定义菜单的输出格式。这个参数允许你指定一个包含占位符的字符串,用于控制菜单项和子菜单项的显示方式。

下面是一个示例代码,演示如何将子菜单项添加到wp_nav_menu中:

代码语言:txt
复制
<?php
// 获取菜单项的HTML代码
$menu = wp_nav_menu(array(
    'theme_location' => 'primary', // 指定菜单位置
    'container' => false, // 禁用菜单容器
    'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', // 自定义菜单项的输出格式
    'echo' => false // 不直接输出菜单,而是返回HTML代码
));

// 添加子菜单项
$menu_with_subitems = str_replace('</a>', '</a><ul class="sub-menu">', $menu);
$menu_with_subitems = str_replace('</li>', '</li></ul>', $menu_with_subitems);

// 输出菜单
echo $menu_with_subitems;
?>

在上面的代码中,使用str_replace函数将</a>替换为</a><ul class="sub-menu">,将</li>替换为</li></ul>,以在菜单项后面添加子菜单项。

这样,通过自定义items_wrap参数和添加子菜单项的代码,就可以将子菜单项添加到wp_nav_menu中了。

请注意,上述代码是一个示例,实际使用时需要根据主题的HTML结构和CSS样式进行适当的调整和样式定义。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ABAP 如何将自定义的区域菜单添加到系统默认的菜单

在SAP应用,不同的公司往往会根据自身的需求开发很多报表或者功能页面,同样也会对这些客制化开发的功能进行分类,并且这些分类菜单是能够被所有用户读取的。...在SAP Easy Access中所显示的系统菜单一般也被称之为区域菜单,区域菜单的输入点默认是S000,可以通过事务代码SSM2来查看及设置系统默认的区域菜单输入点,如下图所示: ?...当然我们也可以在它下面进行扩展,增加自定义的区域菜单,具体的操作如下: 1、输入事务代码SE43,在“区域菜单”字段输入S000,然后单击工具栏的“编辑”按钮,系统将弹出“指定处理模式”的对话框,需要用户选择使用哪种更改模式...2、在区域菜单编辑页面中选择主菜单,然后执行“编辑”-“导入”-“其他菜单”命令,在弹出的“区域菜单选择”对话框输入自定义的区域菜单名称,如下图所示: ? ?...3、保存上述设置,可以在初始页面中看到新增的自定义区域菜单,该区域菜单可以分配系统中所有的用户浏览及操作。 参照以上的方法,可以根据不同的用户的具体业务需求来设置区域菜单。 ?

3.7K10

wp_nav_menu 函数经Walker_Nav_Menu 类自定义导航菜单HTML

WordPress 中有一个导航菜单函数wp_nav_menu,通过这个函数可以控制菜单输出的HTML 结构,一般开发者用这个函数的一般是在输出HTML 自定义一些id 或者class 而已,整体的HTML...项目的需求是各种各样的,了解如何自定义导航菜单HTML 结构就十分重要了。 wp_nav_menu 函数 囿于篇幅,本文不会教你怎么使用wp_nav_menu 函数,请自行补习。...HTML 结构非常大的限制(比如说我想在每个li前面添加个标签办不了,一些class的名称也定义不了),如果只这么用根本不能适应各种各样的项目需求,好在WordPress 提供了一个类Walker_Nav_Menu...例子: 比如说WordPress 输出二级菜单的话,ul 类名默认是sub-menu,那我想改为child-menu,怎么办?....= "\n$indent\n"; } } 然后在wp_nav_menu 函数调用这个自定义的类: <?

2.5K70
  • WordPress 技巧:给 wp_nav_menu 函数添加缓存,提高页面效率

    WordPress 自定义菜单功能是非常好用的一个功能,但是我们在实际使用的过程当中,却发现一个非常严重的问题,效率非常低下,如果自定义菜单比较复杂的话,会产生多达十几条甚至几十条的 SQL 查询,我认真查看了下...wp_nav_menu 函数的源代码发现其没使用进行缓存,但是 wp_nav_menu 又没有足够多的 hook,于是我只能重写了一个 wpjam_nav_menu 函数,使用 WordPress...Transients API 对生成的菜单进行缓存,大大提高页面的效率: /* Plugin Name: WPJAM Memcached Nav Menu Plugin URI: http://blog.wpjam.com...$menu_id); } 将上面的函数添加到当前主题的 functions.php 文件,或者直接上传为一个插件并激活。...然后在主题模板(一般在 header.php 文件)使用 wpjam_nav_menu 函数替代原来的 wp_nav_menu 即可。 ----

    39050

    WordPress 自定义菜单功能介绍和使用详解

    如果你的主题不支持自定义菜单功能,那么左边的 主题位置 面板会提示你,这个自定义菜单的选项将会在侧边栏显示。...如果主题支持自定义菜单功能,那么这个面板则会提示支持几个自定义菜单、自定义菜单的名称(需要定义)是什么。 上面提示,一个自定义菜单,并且名称为 topnav 。...现在,我要制作这个自定义菜单的内容。在左边三个面板:分类目录、自定义链接、页面。里面包含着你当前博客里面的相关数据。 我们只需要勾选相应的内容或者直接拖动到右边的刚刚设置的菜单面板即可。...在 'header-menu' => __( 'topnav' ) 这句代码,我加了__() 这个函数,它是用于跨语言翻译用的。 wp_nav_menu 之后,在主题中添加自定义菜单。...如果你使用 3.4.2 版本的时候,自定义菜单无法使用,可以自行搜索一下解决方法。 ----

    1.1K20

    wordpress导航菜单详解及改造

    /注册一个菜单 如上述代码 就是创建一个别名为‘header-menu’,名称为导航的菜单 那么如果要创建多个菜单的话 参考下面代码 register_nav_menu(array( 'header_menu...'%3$s' 去ul保持li不变 更多相关的内容 参考官方对菜单函数的说明 https://developer.wordpress.org/reference/functions/wp_nav_menu...if(function_exists('wp_nav_menu')) { wp_nav_menu(array('container'=> false,'items_wrap'=>'%3$s','theme_location...一般来说 我们最多只需要二级菜单 我们只需把depth改为2即可 但如果要三级菜单以上呢 可不是简简单单那改个depth就行了 构造三级菜单 我们需要对菜单进行定制 需要使用walker参数 该参数接受一个自定义的...应该没有这么奇葩的要求吧 如果真有,就得再改造一番了 如果想自定义walker函数 自己定制菜单 只要有能力,完全可以 下面给一个用wp菜单实现输出bootstrap菜单结构的教程 http://www.ashuwp.com

    3.1K70

    WordPress设置登陆用户和未登陆用户显示不同菜单

    说明:一般来说网站头部一个导航菜单,有时候由于某些因素我们需要给登陆和未登陆用户分别显示不同的菜单项,这里说下方法。...1、创建两个菜单 先进入WordPress后台-外观-菜单,创建两个菜单菜单名称分别设置成:已登陆和未登录,并给这两个菜单分配不同的菜单项。...2、确定菜单位置名称 开始下一步前,我们需要知道菜单位置名称,也就是theme_location参数的值,用文本编辑器打开当前主题目录的header.php,搜索wp_nav_menu一般都能找到这个值...,代码一般长这样: // theme_location后面的 top 就是我们要找的值 wp_nav_menu( array( 'theme_location' => 'top', 'menu_id'...添加执行代码 最后,在当前主题的functions.php添加以下代码即可: function ludou_nav_menu_args($args = '') { // 下面的top改成第2步获取到的菜单位置名称

    1.2K20

    使用 WordPress 的导航菜单

    WordPress 原来默认的导航菜单只能是页面,或者分类,或者两者,如果想自己加入一个自定义链接都需要修改主题,非常不方便,所以一个完全可定制化的自定义的 WordPress 导航菜单成了所有人的需求...而 WordPress 3.0 的其中一个非常重要的功能是一个全新的菜单管理系统,这个系统可以让我们创建包含由日志,页面,分类,标签和其他链接组成的完全自定义菜单,并且还支持多级菜单,非常方便和强大,今天就谈谈如果使用...这里我们只注册一个导航菜单的主题位置: register_nav_menu( 'nav-menu', '导航菜单'); nav-menu 是这个导航菜单的名字,用来在函数定义身份的,而“导航菜单”则是名称...添加和显示导航菜单 注册好之后,就可以到 WordPress 后台 > 外观 > 菜单 添加菜单,添加的菜单的顺序是这样的: 首先定义好一个单独的菜单。 然后吧这个菜单赋给一个主题位置。...然后我们到主题的显示菜单的位置通过以下 wp_nav_menu() 就能把刚才定义的菜单显示出来,当然 wp_nav_menu() 这个函数可以非常详细的参数,但是这里只要简单使用就可以,在特殊的情况下才可能使用到

    2K10

    【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十八章u-boot图形化配置

    按下“Enter” 键进入菜单。配置界面下方五个按钮,为选中并进入,为返回上一层或退出,帮助, 保存,加载指定的配置文件。...,所以 menu 到 endmenu 代码块里面的 config 条目就是菜单 的配置选项。...其中 boot 类型俩的值 俩种,也就是 y 和 n,也就是说,如果我们使用了这个类型,在 make menuconfig 对应的选项我们可以选 择 y 和 n,tristate 的值类型三种,分别是...我们在主菜单添加了一个名为 test menu 的菜单,然后在这个子菜单里面我们添 加了一个名为 TEST_CONFIG 的配置,这个配置变量类型为 bool,默认配置为 Y,帮助信息为 just...添加完成以后在图形化配置界面表现如下: 在主菜单添加的菜单菜单的配置,默认为 y,注释信息为 just test。在此界面输入?

    8710

    项目需求讨论- 自定义圆形排版的ViewGroup来构成动态弹框菜单

    少年,Too Young Too Simple,比如我们一共有10的业务,某个A公司我们的三个功能,然后你前段界面写死,B公司功能,然后你这时候写了二个界面,这时候,突然A公司说我升级了。...我也要跟B公司一样功能,然后你又去改界面? 一共有A,B,C...W 公司,难道你就去写A-W个布局??(同理,如果是城市划分,比如在不同的城市可能支持的功能业务不同,出现不同的菜单。...那我们的难点就变成了: 既然我们是动态的显示这个菜单,拿到这些数据后怎么来呈现呢 很多人应该做这么个界面会觉得简单,但是如果是一个根据数量自动排好的菜单界面就有点不知所措了。...如果给了我们N个数据,我们要在这个弹框显示出N个,那我们的问题也就变成了:能否提供一个自定义的ViewGroup,然后我传入几个View对象,可以按照一定的规则帮我自动排布,这样我们拿到N个数据后,只需要新建相应的...View对象,然后添加到这个ViewGroup就行了。

    51620

    Head First设计模式——组合模式

    最近比较忙,段时间没有更新设计模式的进度了。今天继续学习组合设计模式。   ...迭代器模式说到两个餐馆合并然后使用迭代器进行统一处理菜单的打印,但是现在有一个新的需求是原来大菜单我们希望加入菜单,比如饭后甜点。那么这个时候对于需求模型来说就是类似下面这样 ?...菜单拥有菜单项,菜单可能还拥有菜单,我们现在要打印菜单。也就是处理每个菜单菜单项,如何将他们合理的组织起来并统一处理?要解决这个问题,组合模式来实现这一需求。...这个模式能够创建一个树形结构,如果我们了一个树形结构的菜单菜单和可能还带有菜单项的菜单,那么任何一个菜单都是一种“组合”。因为它既可以包含其他菜单,也可以包含菜单项。...foreach 循环打印菜单组件,如果遇到另外一个菜单对象则进入菜单打印。

    46330

    iOS 二级菜单(UITableView实现)「建议收藏」

    2 如果菜单点一下打开,如果没有,则实现相应的操作; 我们来实现他(界面有点丑,但主要是功能,界面很简单自己设计一下就行): 个人想法是这样的: 首先建立一个cell的类,用于存放cell的内容...; 下面我说一下大体的思路吧; 当选中cell的时候看看这个cell有没有菜单如果没有很简单直接打开就行了; 如果有那么我们先将这些菜单想办法添加到掌管父菜单的数组,然后生成一个位置数组(为了在...tableview调用 insertRowsAtIndexPaths: withRowAnimation: 这个函数进行插入操作并且带有动画); 删除操作相同的意思先从控制父菜单的数组删除,然后同样生成位置数组调用函数删除...TableArry objectAtIndex:indexPath.row]; NSLog(@"%d",indexPath.row); if(cell.ChildArray.count==0)//如果没有菜单...]; [_DeleteArry addObject:child];//添加到删除数组 } item.Open = NO;//设置视图关闭 NSMutableArray

    1.2K30

    【愚公系列】2023年11月 Winform控件专题 ContextMenuStrip控件详解

    通过添加菜单项和菜单项,可以为用户提供更多的操作选项。使用方法:在Visual Studio的工具箱中找到ContextMenuStrip控件,将其拖动到窗体上。...在代码为控件添加菜单项和菜单项,如下所示:// 创建一个菜单项ToolStripMenuItem menuItem1 = new ToolStripMenuItem();menuItem1.Text...(menuItem1);在控件的MouseDown事件判断鼠标右键是否按下,如果是,则显示ContextMenuStrip,如下所示:private void control_MouseDown(object...以下是使用ToolStripComboBox属性创建ContextMenuStrip控件的步骤:将ContextMenuStrip控件添加到Winform。...ToolStripSeparator separator = new ToolStripSeparator();// 将菜单项和分隔符添加到ContextMenuStrip控件contextMenuStrip1

    99011

    一步步教你用CSS添加SVG过滤器

    在本教程,重点将放在 SVG 的过滤器上 —— 但不只是将它们应用于 SVG 图像,我将向你展示如何将它们应用于任何常规页面的内容上。...如果你此刻在浏览器查看页面,将看到一个带有一些文本的图像。当前标题仍然是没有样式的,接下来为它设置样式并应用 SVG 过滤器。...它设定了 padding 值,使其周围能够适量的空间,颜色也会改变。...将以下导航内容添加到正文代码的最顶部,也就是本教程第一步开始的标题之前。这将在一个圆内创建一个看上去像汉堡?的菜单图标。...添加这一可使第一个菜单元素在用户单击菜单后移动到位。每个菜单元素都会以稍长的时间移出。

    2.9K20

    Sketch 插件开发官方文档合集插件基础您的第一个插件开发环境调试ActionAPI发布插件插件捆绑插件,脚本和命令插件位置更多关于CocoaScriptSketchTool参考资源

    再次,如果有任何事件想要添加到列表,请告诉我们,我们将尝试添加它(由于性能原因,某些事件不在列表,例如“图层被拖动”)。...title 指定用于菜单的标题的字符串。 items 这是一个列出要包含在菜单的项目的数组。...它可以包含两种类型的项目: 一个给出命令标识符的字符串 描述菜单的字典(包含“标题”和“项目”) isRoot 默认情况下,此字典列出的菜单项将显示在菜单,其名称由标题键指定。...如果指定了isRoot键,并且值为true,则这些项目将插入到插件菜单的根级别,而不是插入到文件夹。在这种情况下,标题密钥将被忽略。 这个键在菜单中被忽略。 菜单示例 这是一个例子。...它在名为“My Plugin Menu”的菜单定义了三个命令。菜单的前两对应于插件的两个命令,但第三是名为“My Plugin Submenu”的菜单

    6.3K90

    一键完成对话需求?这款插件你不能错过(Unity3D)

    你不必将它们添加到数据库,但是如果你想在对话中方便地在下拉菜单引用它们,你可以添加它们。 Actor:对话的主要参与者(通常是玩家)的显示名称。...Group 分组 如果勾选此项,则将其标记为用于分组节点的直通节点。 Menu Text 菜单文本 在播放器响应菜单显示的文本,例如对对话文本的简短解释。如果为空,则默认为对话文本。...Entry # 输入# (If (如果Has Entries 项目的描述。 Entry # State 输入#状态 条目的起始状态。...按照下面的说明将本地化添加到对话数据库。 如何本地化对话 这些步骤演示了如何将西班牙语(es)和俄语(ru)添加到对话。...将翻译添加到本地化字段: 如何本地化任务 这些步骤演示了如何将西班牙语(es)和俄语(ru)添加到任务。 1.在“模板”选项卡上展开Quests 任务 foldout. 折页。

    4.7K20

    java swing一篇轻松学习(高考后可以自学)

    void insertItemAt(Object anObject,int index) 在下拉列表框的指定索引处插入 void removeltem(0bject anObject) 在下拉列表框删除指定的对象...void removeItemAt(int anlndex) 在下拉列表框删除指定位置的对象 void removeAllItems() 从下拉列表框删除所有 int getItemCount...;i++) { listData[i]="这是列表框的第"+(i+1)+"个元素~"; //为数组各个元素赋值 } list.setListData...index) 在指定的位置插入分隔符 isMenuComponent(Component c) 如果菜单层次结构存在指定的组件,则返回 true isPopupMenuVisible() 如果菜单的弹出窗口可见...,则返回 rue isSelected() 如果菜单是当前选择的(即高亮显示的)菜单,则返回 true isTopLevelMenu() 如果菜单是“顶层菜单”(即菜单栏的直接级),则返回 true

    9.4K10
    领券