如何向 WordPress 导航菜单中的
  • 元素添加数据属性
  • 2024-03-03

    我在 WordPress 网站上使用 fullpage.js,并且想使用它的功能之一,即在 li 上添加一个类。但要做到这一点,您需要添加数据属性 data-menunchor 。

    我见过这个:

    add_filter( 'nav_menu_link_attributes', 'my_nav_menu_attribs', 10, 3 );
    function my_nav_menu_attribs( $atts, $item, $args )
    {
      // The ID of the target menu item
      $menu_target = 113;
    
      // inspect $item
      if ($item->ID == $menu_target) {
        $atts['data-menuanchor'] = 's1';
    
      }
      return $atts;
    }
    

    它可以工作,只是它将属性添加到 a 标记并需要它位于 li 标记上。

    另外,如果我想对菜单上的所有项目执行此操作。我需要对所有项目执行此功能吗?我想我每次都必须重命名该函数?

    Thanks


    我不确定 WP 有专门的过滤器/方法。你将不得不做一些手动 DOM 操作wp_nav_menu_items.

    https://developer.wordpress.org/reference/hooks/wp_nav_menu_items/ https://developer.wordpress.org/reference/hooks/wp_nav_menu_items/

    function addDataAttr( $items, $args ) {
        $dom = new DOMDocument();
        $dom->loadHTML($items);
        $find = $dom->getElementsByTagName('li');
    
        foreach ($find as $item ) :
            $item->setAttribute('data-menuanchor','s1');
        endforeach;
    
        return $dom->saveHTML();
    
    }
    
    add_filter('wp_nav_menu_items', 'addDataAttr', 10, 2);
    
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

    如何向 WordPress 导航菜单中的
  • 元素添加数据属性 的相关文章
  • 随机推荐