修改选择器以仅定位特定标签[wordpress]

时间:2013-08-12 23:54:27

标签: php wordpress attributes navigation

下面的代码将针对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 );
});

1 个答案:

答案 0 :(得分: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 );
});