programing

wp_nav_메뉴에서 li 요소에 클래스 추가

telecom 2023. 11. 1. 22:08
반응형

wp_nav_메뉴에서 li 요소에 클래스 추가

워드프레스의 wp_nav_메뉴에 문제가 있습니다.저는 Li 원소들의 구조를 만들고 싶습니다. 여기서 모든 원소들은 "menu-li" 클래스를 가질 것입니다.하지만 저에겐 통하지 않는군요.이것은 제 기능을 하고 있습니다.php 파일:

register_nav_menus(
array(
'primary-menu' => __( 'Primary Menu' ),
'secondary-menu' => __( 'Secondary Menu' )
));

그런 다음 워드프레스 관리 패널에 메뉴를 만들었고 이제 내 테마에 메뉴를 추가하고자 합니다.

                    <?php

                $defaults = array(
                    'theme_location'  => 'primary-menu',
                    'menu'            => '',
                    'container'       => '',
                    'container_class' => '',
                    'container_id'    => '',
                    'menu_class'      => 'menu-li',
                    'menu_id'         => '',
                    'echo'            => true,
                    'fallback_cb'     => 'wp_page_menu',
                    'before'          => '',
                    'after'           => '',
                    'link_before'     => '',
                    'link_after'      => '',
                    'items_wrap'      => '<ul>%3$s</ul>',
                    'depth'           => 0,
                    'walker'          => ''
                );
                wp_nav_menu( $defaults );
                ?>

모든 요소를 선형으로 표시하지만 "menu-li" 클래스는 없습니다.어떻게 하면 모든 액체 요소에 추가할 수 있습니까?

menu_class클래스에 추가된 컨트롤의 매개 변수<ul>개별 요소가 아닌 래퍼 요소<li>s. 메뉴 항목에 클래스를 추가하려면 필터를 사용합니다.

이렇게 작동합니다(테마에 추가).functions.php파일):

add_filter ( 'nav_menu_css_class', 'so_37823371_menu_item_class', 10, 4 );

function so_37823371_menu_item_class ( $classes, $item, $args, $depth ){
  $classes[] = 'menu-li';
  return $classes;
}

이것은 추가될 것입니다.menu-li모든 메뉴 항목에 클래스를 지정합니다.

조건에 따라 이 작업을 수행할 수도 있습니다.$item,$args당신이 원한다면 등이 이 필터로 전달됩니다.

사용자 정의 메뉴에서 클래스 추가가 필요한 경우 다음 코드를 사용합니다.

add_filter('nav_menu_css_class','arg_menu_classes',110,3);

function arg_menu_classes($classes, $item, $args) {
    if($args->menu == 'FooterMenu') { // name need menu
        $classes[] = 'col-6 col-sm-6'; // add classes
    }
    return $classes;
}

언급URL : https://stackoverflow.com/questions/37823371/adding-class-to-li-elements-in-wp-nav-menu

반응형