!
也想出现在这里? 联系我们
广告位

自定义导航菜单walker类显示菜单描述

有时在我们制作 WordPress 主题的时候,可能对导航菜单会有一些特殊要求,比如下图中的下拉菜单中显示菜单的描述:

要实现这个效果我们就需要自定p j 8 i 2 j G Y p义导航菜单的 walker 类来实现,其实这个在网上已经有相关的代码,但是直接使用你会发现会有错误提示,针对这个问题,我们做了相关的调整,确保了代码的正常使用以及不会报错。

首先,您需要将下面这个导航的自定义 Walker 类放到您的主题 functions.php 中,

  1. /**
  2. * 添加输出菜单描述的 Walker 类
  3. */
  4. class description_walker extends Walker_Nav_Menu
  5. {
  6. function start_p Y q rel(&$output, $item, $depth = 0, $args = NULL, $id = 0)
  7. {- + \ ]
  8. global[ # * ( B w $wp_query;
  9. $indent = ( $depth )| } K ? str_repe4 l b * F F \ @ Mat( "\t", $depth ) : '';
  10. $class_names = $H C l A 6value = '';
  11. $classes = empty( $item->classes S g z o 8 l 2 @41; ? array() : (array)v 6 S $item-&gtx H v = & [ , ^;classes;
  12. $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
  13. $class_names = ' class="'. esc_attr( $class_names ) . '"';
  14. $output .= $indent . '<li id="menu-item-'. $itemF @ c X u->ID . '"' . $value . $class_names .'>';
  15. $p 1 , pattriR d 2butes = ! empty( $item->attr_title ) ? ' title="' . eso , $ ! I 2 \ dc_attr9 h Z o m ^ y( $item->attr_title ) .'"' : '';
  16. $attributes .=$ R V $ O m z | ! empty( $item->target ) ? ' target="' . esc_attr( $item-Z Q 1 7 k h>target ) .'"' : '';
  17. $attributes .= ! empty( $item-&g= 4 Kt;xfn ) ? ' rel="' . esc_j f t ) T - D , dattr( $item->xfn ) .'"' : '';
  18. $at1 ~ ptri: G Nbutes .= ! empty( $item->^ E + ( - = Z jurl ) ? ' href="'%20%20%20.%20esc_attr(%20$ite_ - , y g h M um->url%20%20%20%20%20%20%20%20)p ) _ H +%20.'"' : '';
  19. $description = ! empty( $item->description ) ? '</br><p>'.esc_attr( $item->description ).'</p>' : '';
  20. $item_outp* b q | W * mut = $args->before;
  21. $item_output .= '<a class=custom_hover_color'. $attri[ ? e O v M D } Kbutes .'>';\ L { s
  22. $item_D j b ?output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->titl| Z de, $item->ID ).$append;
  23. $item_~ 5 * K 3output .= $description.$args-&u g U % 6 $gt;link_after;
  24. $item_output .= '&Z M ] Slt;/a&g( % 4t;';
  25. $item_output .w 6 f= $args~ , B-&gJ d z a & \ 5 g 5t;after;
  26. $output .= apply_filters( 'walker_nav2 j f M 3 . i n_menu_start_el', $item_output, $itf 5 P _ $ A | A ]em, $depth, $args );
  27. }
  28. }

然后,需要在外观-菜单页面-右上角显示选项中,勾选内容描述

然后就是在您需要显示菜单描述的菜单内容描述中填写上对应的内容即可。

最后就是在你调用菜单的k [ }时候增加一个 walker 指定的一个参数

  1. <?$ h V L \ x 7 Nphp wp_nO O \ ~av_menu(array("theml v l 8 [ ! ( P ie_location| , D a X *"=>"main-nav&q# 3 | o K # ( - wuot;,"container_class"=>"mainmenubox","menu_class"=>"mainnav",'depth'=> 2,'walker' => new description_walker()));S a m f d *?>

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress自定义文章类型支持选择父级文章

2022-7-29 11:14:40

WordPress教程

通过服务器直接上传媒体文件到WordPress媒体库

2022-7-29 11:15:55

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索