如何使用 Wordpress walkers 显示父菜单项的描述?

2023-12-13

有什么方法可以将变量从 start_el 传递到 start_lvl 吗?我想将菜单描述放在子菜单项的包装中。

class submenu_walker extends Walker_Nav_Menu
{
    function start_lvl( &$output, $depth = 0, $args = array() ) {
        $indent = str_repeat("\t", $depth);
        $output .= "\n$indent<ul class='sub-menu'><div class='menu-image-container'><div class='menu-image'></div></div>\n";
    }
    function end_lvl( &$output, $depth = 0, $args = array() ) {
        $indent = str_repeat("\t", $depth);
        $output .= "$indent<div class='clear'></div></ul>\n";
    }
}

我尝试将描述存储为 start_el 中的变量,并使用 start_lvl 中的 global 访问它...但它什么也不返回。

我真的非常渴望在这方面得到帮助,因为到目前为止我还没有任何结果,也没有对这个问题的答案做出回应。

有人可以帮我解决这个问题吗?肯定有人知道如何使用 Wordpress walker 菜单。


这是使用此代码的方法,它将显示父级描述。 使用步骤。
1:将下面的类复制到functions.php文件中。
2:调用菜单如下

 wp_nav_menu(array(
      'menu_id'=>'',
      'menu_class'=>'',
      'container'=>'',
      'theme_location'=>'#enter theme location#',
      'walker'=> new customize_menu_walker()
    ));
<br/>

3:查看结果。

class customize_menu_walker extends Walker_Nav_Menu
{
 function start_el(&$output, $item, $depth, $args)
      {
           global $wp_query;
           $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';

           $class_names = $value = '';

          // $dbclasses=$item->classes;
           $classes = empty( $item->classes ) ? array() : (array) $item->classes;

           $dbclasses=$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
           $class_names = ' class="'. esc_attr( $class_names ) . '"';

           $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
           $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
           $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
           $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';



            $item_output = $args->before;

             //specially for two menu
             //specially for two menu
           //convert string to array
           $dbclassesArr = explode(" ",$dbclasses);

           $item_output .= '<a'. $attributes .'>';

           if(in_array("menu-item-has-children", $dbclassesArr)){
             $description  = ! empty( $item->description ) ? '<span>'.esc_attr( $item->description ).'</span>' : '';//description display here.
           }

            $item_output .= $args->link_before .apply_filters( 'the_title', $item->title, $item->ID );
            $item_output .= $description.$args->link_after;
            $item_output .= ' '.'</a>';
            $item_output .= $args->after;

            $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
            }
}

现在更新此功能后,您的菜单将显示父菜单描述。 这是代码。

感谢您。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Wordpress walkers 显示父菜单项的描述? 的相关文章

  • 如何将 javascript 倒计时器与服务器同步

    我有一个拍卖网站 有一个 JavaScript 计时器倒计时 由于某种原因 15 20 分钟后 该计时器比实际时间滞后 20 30 秒 在 1 小时的过程中 JavaScript 倒计时器可能会关闭至少 2 3 分钟 这让用户感到困惑 因为
  • MongoDB 给出奇怪的连接错误

    我在使用 PHP 连接 MongoDB 时遇到问题 这是我的代码 这会产生以下错误 Fatal error Uncaught exception MongoConnectionException with message localhost
  • DOMDocument 对我的字符串做了什么?

    dom new DOMDocument 1 0 UTF 8 str p Hello p var dump mb detect encoding str dom gt loadHTML str var dump dom gt saveHTML
  • PHP 字节数组转 Base64(来自 Mssql 的字节数组)

    我在表上使用 Mssql 和图像 例如 0xFFD8FFE000104A46494 我觉得是这样的字节数组 我想用 PHP 将其更改为图像 我试试这个 img src 但图像不显示 代码演示 http sandbox onlinephpfu
  • PHP 类中的命名空间和全局变量问题

    我陷入了这种困惑 我不明白为什么我的 HelperClass 下的全局 error 返回空 我可以验证 class gt error 确实之前已填充了数据 在这种情况下 命名空间是否存在某种我不知道的问题 请给我一些指点 以下是一些相关的代
  • PHP 数组的最大键大小是多少?

    我正在生成关联数组 键值是 1 n 列的字符串连接 会回来咬我的钥匙有最大长度吗 如果是这样 我可能会停下来并采取不同的做法 它似乎仅受脚本内存限制的限制 快速测试后我得到了 128mb 的密钥 没问题 ini set memory lim
  • PHP Google Drive API - 文件上传仅作为“无标题”-文件或只是没有内容

    我正在寻找一种解决方案 通过 PHP 将文件从我的根服务器直接上传到我的 Google Drive 帐户 授权工作正常 但当我尝试传输文件 例如 test jpg 时 它只是在 Google Drive 中创建一个名为 Untitled 的
  • LDAP 过滤器用于区分名称

    我使用以下代码成功查询 Active Directory 中的用户 filter objectCategory person samaccountname someusername fields array samaccountname m
  • 未知的 MySQL 服务器主机 (PHP)

    当尝试连接到我的数据库服务器时 我遇到了以下问题未知主机 Warning mysqli mysqli mysqli mysqli HY000 2005 Unknown MySQL server host xxxxxxxxxxxxx port
  • 联系表 7 根据用户选择立即发送给多个联系人

    您好 我正在 WordPress 联系表单 7 中创建联系表单 如果用户选择 全部 我想立即向多个收件人发送电子邮件 我看过这个 但似乎没有记录您是否可以一次发送给多个收件人http contactform7 com selectable
  • 电子邮件标题中的特殊字符是什么以及何时使用引号?

    我正在尝试使用 PHP 发送和阅读电子邮件 到目前为止 我发现我必须使用该函数对特殊字符进行编码mb encode mimeheader 但我不必对空格进行编码 我还发现地址字段中的括号不起作用 读取带有括号的标题时 PHP 的 imap
  • PHP:数据库连接类构造方法

    我是面向对象编程的新手 最初 我是在类内部和构造函数外部定义变量并为其赋值 但是在今天的 Java OOP 课程之后 我被告知这是不好的风格 应该避免 这是我模拟的原始 PHP 数据库连接类 class DatabaseConnection
  • 在 PHP 页面中嵌入 svn 修订号的简单方法?

    注意到这个页面的右下角有 SVN 修订 ID 了吗 我假设这是动态的 我很乐意将其添加到我的一些网站中 就像源代码中的注释一样 以确保代码推送顺利进行 注意 您还可以假设相关站点的工作目录是相关存储库的 svn checkout Edit
  • URL 重写 OpenCart 产品 SEO

    我想重写我的 opencart 网上商店的产品网址 Opencart 本身有一个 seo 实现 这真的很糟糕 我已经更新了 seo 实现 以便能够对多个类别使用相同的关键字 请参阅 Opencart 重复 URL 关键字 https sta
  • 如何在服务器(无 GUI)上呈现网页以进行打印?

    我正在尝试使用 PHP 脚本将页面实用地打印到办公室打印机 这是我到目前为止所得到的 我在服务器上安装了一台打印机 我可以通过命令行的打印命令使用 PHP 向其发送作业 我还可以使用 PHP 脚本编写纯文本文件 然后将它们添加到打印提示中
  • 设置基于 PHP 定时器的函数

    我有一个 php 文件test php 我想要echo or print5 秒后 即在浏览器调用 加载或打开 php 文件后不久 成功 顺便说一句 有时我可能想在特定的时间间隔后执行 初始化某些函数 如何使用 php 执行面向时间的任务 例
  • Codeigniter:用户会话不断过期

    我正在使用 CodeIgniter 但在会话方面遇到了一个小问题 我已将 config php 中的 sess expiration 设置为 0 以便用户会话永远不会过期 但用户 甚至我自己 仍然偶尔会被踢出并要求再次登录 顺便说一句 我将
  • 删除删除线的 unicode 文本?

    我偶尔会收到用户的输入 他们正在使用那些烦人的 stikethrough 文本生成器 这破坏了我的代码 我尝试过在这里找到的一些代码 string preg replace x00 x1F x80 xFF string 它有效 但我需要它只
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • 如何在 PHP 中验证电子邮件? [复制]

    这个问题在这里已经有答案了 如何使用 php5 验证输入值是有效的电子邮件地址 现在我正在使用这段代码 function isValidEmail email pattern a z0 9 a z0 9 a z0 9 a z0 9 a z

随机推荐

  • 拖动时将标记/图钉保持在地图中间

    我希望当用户在地图上拖动时 标记 图钉可以滚动并位于地图的中心 我有一个简单的 jsfiddle http jsfiddle net upsidown 5xd1Lbpc 6 当用户停止拖动时 图钉将落到地图的中心 但我希望图钉随着拖动而移动
  • PayPal REST API“列出付款”不返回任何条目

    我正在尝试使用 PayPal REST API 来获取付款列表 通常这些付款是通过 eBay 进行的 当我尝试沙箱时 我可以获得一个令牌 然后按预期获得付款列表 但当我切换到实时列表时 列表总是空的 例如 使用卷曲 curl https a
  • 如何在 Android 上获取 google 用户名?

    我看过有关使用的参考AccountManager like 通过 Android 访问 Google 帐户 ID 用户名 不过好像是为了抢authtoken 我只需要访问用户名 不需要密码或任何身份验证令牌 我使用的是android 2 1
  • 为什么 PHP 严格类型允许函数参数的类型错误?

    我正在使用 PHP 7 4 16 我启用了strict types在我的 PHP 文件中 认为它会阻止传递string函数的参数期望int通过扔一个TypeError 然而 该函数实际上接受string并将其强制为int 但是 如果我在函数
  • Bootstrap Offcanvas 导航 - 关闭时不重置背景

    我在 offcanvas div 中有一个很长的链接列表 这些在表单中是因为我想使用它们来导航很长的背景页面 实际上 它是一个目录 画布愉快地弹出 导航链接有效 将背景页面跳转到正确的位置 欢呼 但是 当您选择并链接并导航背景页面到某个位置
  • 导出时 React.Component 是默认扩展吗?

    我正在浏览一些 React 项目 有时会看到 export default gt 但其他时候我看到 export default class Entry extends React Component 两者之间有什么区别吗 导出是否自动扩展
  • 转换 QString 以在 SQL 查询中使用

    我想根据用户输入生成 SQL 查询 以便将一些数据插入数据库 用户可以输入任何内容 Qt 有没有办法将此类用户输入转换为字符串类型值字段 用户可以输入任何内容 这并没有给我们太多参考 但我可以给你一个例子来说明如何设置基本的插入查询 I a
  • 当对存在的目录使用 ListDirectoryDe​​tails 时,FtpWebRequest 返回“550 文件不可用(例如,文件未找到,无法访问)”

    我有一个恼人的问题 阻止我在 FTP 中获取所需的文件 该文件可能有不同的名称 因此我需要首先访问该文件夹并列出其中的文件 然后直接向该文件发出请求 我的问题是 我可以在 Filezilla 中访问此文件 并且也可以完美地发现该文件夹 但是
  • jQuery Mobile 列表上的多个拆分按钮

    jQuery 移动列表中是否可以有多个拆分按钮 我尝试这样做 ul li a href 1 a a href a a href a li ul 但这不起作用 将链接包装在 div div
  • Android 中有波斯(Shamsi 或 Jalali)日历的库或算法吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想转换公历 西方 日期至Persian Shamsi 日期 反之亦然 适用于所有版本的 Android 有没有完整可靠的库或算法 我使用这个算法很
  • 圆形区域内的查询点

    Here is a picture to illustrate the problem 图中有一些特征点显示为蓝色十字 我知道坐标 x y 对于所有功能 现在我想查询哪些要素在圆圈区域 绿色圆圈 内 实际上 大约有 500 个特征和 300
  • VStack 有最大限制吗?

    我从一个干净的项目开始 在 VStack 中添加了 5 个按钮和 5 个垫片 一切都很好 当我在底部添加第 6 个间隔符时 代码突然无法编译 并出现错误 对成员 buildBlock 的引用不明确 是什么导致了这个错误 这是与 SwiftU
  • PairRDD 的总和值

    我有一个 RDD 类型 dataset org apache spark rdd RDD String Double MapPartitionRDD 26 这相当于 Pedro 0 0833 Hello 0 001828 我想总结所有的价值
  • 触发系统音量条

    是否可以通过按我的按钮Activity让音量条出现 音量条是当您按下硬件音量按钮之一时出现的视图 是否有 API 函数可以执行此操作 或者我是否必须手动重新创建该视图 如果调用 setStreamVolume 请传递标志 FLAG SHOW
  • 无法在 UserControl 上设置 x:Name="Root"

    我尝试将 x Name 属性设置为 UserControl 的定义 以便稍后将其用于内部绑定
  • Spark:线程“主”java.lang.ClassNotFoundException中的异常:com.mysql.jdbc.Driver

    我在 Spark 中编写了简单的程序 将数据帧写入 mySql 中的表 程序如下 import org apache spark SparkConf import org apache spark SparkContext import o
  • Sparql查询:查找具有相同属性对象的对象

    假设我们有一个如下所示的数据集 person wantsCD cd1 wantsCD cd2 storeA sellsCD cd1 sellsCD cd2 sellsCD cd3 storeB sellsCD cd1 sellsCD cd1
  • Cucumber:如何从外部 Excel 文件中读取场景大纲的示例

    我的要求是从外部 Excel 文件读取示例 而不是将其硬编码到功能文件中 我有 100 多个示例 这些示例很难在功能文件中维护 你能帮我解决这个问题吗 这是我的场景 Scenario Outline Browser Test When I
  • MinGW编译“文件无法识别:文件格式无法识别”

    我正在尝试编译 C 程序 但遇到一些问题 特别是 当我使用 x86 64 w64 mingw32 gcc 作为编译器时 它在编译过程中抱怨说 tmp src libfastms solver solver cpp o 文件无法识别 文件格式
  • 如何使用 Wordpress walkers 显示父菜单项的描述?

    有什么方法可以将变量从 start el 传递到 start lvl 吗 我想将菜单描述放在子菜单项的包装中 class submenu walker extends Walker Nav Menu function start lvl o