메뉴 항목 및 페이지 목록에 대한 li 클래스 & ID 삭제
WordPress 기본 CSS 클래스 출력 예:
<li id="menu-item-55" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55">
<li class="page_item page-item-37">
메뉴와 페이지 목록 항목은 다양한 li와 함께 제공됩니다.class그리고.id.
에서의 삭제 방법functions.php메뉴와 페이지 목록을 위한 파일?
새 클래스나 ID가 아닌 두 개의 필터에 연결하여 빈 배열 또는 문자열을 반환함으로써 이러한 필터를 제거할 수 있습니다.
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($var) {
return is_array($var) ? array() : '';
}
특정 클래스를 유지하려면 다음과 같은 작업을 수행할 수 있습니다.
function my_css_attributes_filter($var) {
return is_array($var) ? array_intersect($var, array('current-menu-item')) : '';
}
리처드의 대답 위에 덧붙이는 내용입니다.
현재 메뉴 항목 클래스를 다른 것으로 변경하고 싶은 경우.
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($var) {
if(is_array($var)){
$varci= array_intersect($var, array('current-menu-item'));
$cmeni = array('current-menu-item');
$selava = array('selectedmenu');
$selavaend = array();
$selavaend = str_replace($cmeni, $selava, $varci);
}
else{
$selavaend= '';
}
return $selavaend;
}
여기 제가 생각해낸 해결책이 있습니다.wp_nav_menu에서 모든 ID와 클래스를 삭제하지만 클래스 및/또는 ID의 "승인된" 목록을 작성할 수 있습니다.또한 긴 "current-menu-item"을 "active"로 변경합니다.기본 WordPress CSS 스타일을 유지하려면 코드의 해당 섹션을 삭제하십시오.이 투고를 최소한으로 유지하기 위해, 코드 첨부 페이스트 박스에의 링크를 다음에 나타냅니다.
http://pastebin.com/W16cxDfY - 기능을 참조하십시오.php 파일
http://pastebin.com/CGx4aprf - 템플릿의 경우 메뉴 이동처
단순하게add_filter('nav_menu_item_id', '__return_false');메뉴 항목 ID의 경우
li를 제거하는 가장 좋은 방법은 다음과 같습니다.테스트 및 검증 완료
<?php
$menuParameters = array(
'theme_location' => 'header-menu-top',
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0,
);
echo strip_tags(wp_nav_menu( $menuParameters ), '<a>' );
?>
목록 클래스 및 ID를 모두 제거하려면 이 항목을 함수에 추가하십시오.php
add_filter('nav_menu_item_id', 'filter_menu_id');
add_filter( 'nav_menu_css_class', 'filter_menu_li' );
function filter_menu_li(){
return array('');
}
function filter_menu_id(){
return;
}
Richard의 답변에 추가:남겨진 빈 클래스를 정리해야 합니다.
//Strip Empty Classes
add_filter ('wp_nav_menu','strip_empty_classes');
function strip_empty_classes($menu) {
$menu = preg_replace('/ class=(["\'])(?!active).*?\1/','',$menu);
return $menu;
}
솔루션:
$defaults = array(
'theme_location' => '',
'menu' => '',
'container' => '',
'container_class' => '',
'container_id' => '',
'menu_class' => '',
'menu_id' => '',
'echo' => false, // param important
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '',
'depth' => -1,
'walker' => ''
);
ob_start();
echo preg_replace( '#<li[^>]+>#', '<li>', wp_nav_menu( $defaults ) );
$mainNav = ob_get_clean();
// In the page :
echo $mainNav;
언급URL : https://stackoverflow.com/questions/5222140/remove-li-class-id-for-menu-items-and-pages-list
'source' 카테고리의 다른 글
| 블록 범위 변수를 다시 닫을 수 없습니다. (0) | 2023.03.29 |
|---|---|
| 리액트를 사용하려고 합니다.바디 스타일을 설정하는 DOM (0) | 2023.03.29 |
| 레일 객체 관계 및 JSON 렌더링 (0) | 2023.03.29 |
| React의 Virtual DOM은 정확히 어떻게 빨라집니까? (0) | 2023.03.29 |
| 휴지 상태를 설정하는 방법.spring-boot에서 format_sql을 사용할 수 있습니까? (0) | 2023.03.29 |