'menu_item_parent',
'id' => 'db_id',
);
/**
* サブメニューの
開始
* @see Walker_Nav_Menu::start_lvl()
*/
public function start_lvl( &$output, $depth = 0, $args = null ) {
// ヘッダーgnavかどうか
$ark_component = isset( $args->ark_component ) ? $args->ark_component : '';
// クラス
$classes = array( 'sub-menu' );
// $classes = apply_filters( 'nav_menu_submenu_css_class', $classes, $args, $depth );
// $classes[] = 'depth-' . $depth;
if ( 'gnav' === $ark_component ) {
$classes[] = 'c-gnav__depth' . ( $depth + 1 );
}
$class_names = implode( ' ', $classes );
$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
$output .= "
*
* @see Walker_Nav_Menu::end_lvl()
*/
public function end_lvl( &$output, $depth = 0, $args = null ) {
$output .= '
';
}
/**
* 各
*
* @see Walker_Nav_Menu::start_el()
*/
public function start_el( &$output, $data_object, $depth = 0, $args = array(), $current_object_id = 0 ) {
$menu_item = $data_object;
$ark_component = isset( $args->ark_component ) ? $args->ark_component : '';
// li クラスの生成
$classes = empty( $menu_item->classes ) ? array() : (array) $menu_item->classes;
$classes[] = 'menu-item-' . $menu_item->ID;
// $classes[] = 'depth-' . $depth;
// Filters the arguments for a single nav menu item.
// $args = apply_filters( 'nav_menu_item_args', $args, $menu_item, $depth );
// Filters the CSS classes applied to a menu item's list item element.
$classes = array_filter( $classes );
$classes = apply_filters( 'nav_menu_css_class', $classes, $menu_item, $args, $depth );
// 直下のliにのみ、__li を付与
if ( 0 === $depth ) {
$classes[] = "c-{$ark_component}__li";
}
// サブメニューを持つかどうか
$depth_to_have_submenu = 'gnav' === $ark_component ? 1 : 0;
$has_child = $args->walker->has_children;
$has_acc_child = $depth_to_have_submenu <= $depth && $has_child;
if ( $has_acc_child ) {
$classes[] = 'has-child--acc';
}
$output .= '
*
* * @see Walker_Nav_Menu::end_el()
*/
public function end_el( &$output, $data_object, $depth = 0, $args = null ) {
$output .= '';
}
}