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

Cew*_*ler 0 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');
Run Code Online (Sandbox Code Playgroud)

小智 7

您使用的过滤器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);
Run Code Online (Sandbox Code Playgroud)