如何在WordPress菜单项中添加属性data-slug=“$SPECFIC_PAGE_SLUG”?

时间:2016-04-11 作者:shubham jain

我想在WordPress菜单项中添加自定义属性,该菜单项具有特定的页面段塞。像这样-

<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-101" id="menu-item-101"><a href="javascript:;">Meet The Therapist</a></li>
更改为

<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-101" id="menu-item-101" data-slug="$specific_page_slug"><a href="javascript:;">Meet The Therapist</a></li>
提前谢谢。

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

将其添加到菜单链接会更容易。每个链接的属性通过nav_menu_link_attributes 滤器

您应该能够使用它添加一个自定义的,大致如下(未测试):

add_filter( \'nav_menu_link_attributes\', function( $atts, $item ) {

 // check if $item is what you need

 $atts[\'data-slug\'] = \'something\';

 return $atts\'

}, 10, 2);
要更改整个列表项,您必须使用更通用的walker_nav_menu_start_el 过滤器,它只传递字符串,您必须将其切割得更加混乱。

相关推荐

Conditional secondary menus

我有一个由3个项目组成的主菜单,每个项目都有一个不同的辅助菜单。我想在每个页面上显示相关的二级菜单。我目前使用的是带有slug的is\\u页面。我需要添加wpml,这样每个页面都会有更多的slug。我想问一下,您是否可以建议我一个更干净、更易于维护的解决方案。这就是我当时所做的:if ( is_page( \'page-1\' ) ) { wp_nav_menu( array( \'theme_location\' => \'secondary-menu-