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