web-dev-qa-db-ja.com

WP カスタムCSSクラスを使用したウォーカー

ナビゲーションを(ゼロから)作成するために、ウォーカーの出力を変更しています。現在、出力項目メニュー(start_el)に 'Optional CCS Class'(WP Adminの[Appearances - > Menu]にあります)を含める方法を見つけようとしています。この時点でそれが可能かどうか私は疑い始めています。だからこそ私はあなたの助けが欲しいのです。この配列を使用して、アイテムに子があるかアクティブであるかを判断します。

$usedclasses = array(
    (in_array('current-menu-item', $item->classes) ? 'current-menu-item' : ''),
    (in_array('menu-item-has-children', $item->classes) ? 'menu-item-has-children' : ''),
    ($depth % 2 ? 'odd' : 'even')
); $class_names = 'class="' . implode( ' ', $usedclasses ) . '"';

すべてのクラッタクラスを含める必要なしにカスタム追加クラスを追加する方法はありますか?だから使用を避けようとしています:

$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
1
Takararyuu

このようにしたいのかよくわかりませんが、念のためにnav_menu_css_classフィルタを使用できます。

function my_special_nav_class( $classes, $item ) {

   if ( is_single() && $item->title == 'Blog' ) {
      $classes[] = 'special-class';
   }

   return $classes;

}

add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );

もっと例があります ここ

1
Benoti