0

下面的代码将定位 wordpress 导航菜单中的所有锚链接以具有新属性 'data-foo' 和值 'bar'。如何修改为仅针对具有特定类的菜单?

add_filter( 'walker_nav_menu_start_el', function( $item ) {

   $parts = explode( '>', $item );
   $out   = array ();    

   foreach ( $parts as $i => $part )
   {
      if ( 0 === strpos( $part, '<a ' ) ) // a start
         $out[ $i ] = $part . ' data-foo="bar"';
         else
         $out[ $i ] = $part;
   }

   return join( '>', $out );
});
4

1 回答 1

0

在您的代码中,“walker_nav_menu_start_el”是一个预定义的“过滤器”。您可以使用 $get_body_class(className) 将过滤器仅应用于具有此类的元素。

$class = $get_body_class('yourClassNameHere');

add_filter( $class, function( $item ) {

   $parts = explode( '>', $item );
   $out   = array ();    

   foreach ( $parts as $i => $part )
   {
      if ( 0 === strpos( $part, '<a ' ) ) // a start
         $out[ $i ] = $part . ' data-foo="bar"';
         else
         $out[ $i ] = $part;
   }

   return join( '>', $out );
});
于 2013-08-13T00:15:16.633 回答