如何将Wordpress的“ nav_menu_link_attributes”添加到特定菜单?

时间:2019-04-08 18:04:10

标签: php wordpress

我正在一个拥有多个菜单的Wordpress网站上工作。我想使用“ nav_menu_link_attributes”将自定义属性添加到菜单之一的菜单项中,但这会将属性添加到所有菜单中。我如何将其限制为仅一个特定菜单?我找不到有关此问题的任何文档。

我当前的代码是:

function add_menu_atts($atts){
  $atts['data-inventory-link'] = $atts['href'];
  $atts['data-model'] = $atts['title'];
  return $atts;
}
add_filter('nav_menu_link_attributes', 'add_menu_atts');

感谢进阶!

1 个答案:

答案 0 :(得分:1)

您使用的过滤器nav_menu_link_attributes也支持其他参数。您可以传入包含项目详细信息的第二个参数$item和第三个参数$args。尝试这样的事情:

function add_menu_atts($atts, $item, $args){
  // your check for primary menu location
  if( $args->theme_location == 'primary' ) {
    $atts['data-inventory-link'] = $atts['href'];
    $atts['data-model'] = $atts['title'];
  }     

  return $atts;
}
add_filter('nav_menu_link_attributes', 'add_menu_atts', 10, 3);