워드프레스 메뉴의 수정에 유용한 li 태그의 class name 종류

예전에 워드프레스 메뉴를 수정하는 방법에 대해 포스팅을 한 적이 있는데, 오늘은 출력된 메뉴를 원하는 방향으로 스타일링하기 위해 필요한 li 아이템의 class name의 종류에 관해서 알아 보겠습니다.

워드프레스 메뉴의 li 태그에 사용가능한 class name의 종류

기본적으로 워드프레스의 wp_nav_menu(); 함수는 아래와 같은 방식으로 자동적으로 클래스명을 출력합니다. 아래 코드들은 워드프레스 관리자 페이지에서는 확인이 안되고 실제 출력된 웹페이지에서 소스보기를 해야 확인이 가능합니다.

<ul>
<li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-30"><a href="링크 주소">Home</a></li>
<li id="menu-item-31" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2 current_page_item menu-item-31"><a href="링크 주소">Sample Page</a></li>
<li id="menu-item-32" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-32"><a href="링크 주소">Uncategorized</a></li>
<li id="menu-item-38" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-38"><a href="링크 주소">테스트</a>

<ul class="sub-menu">
	<li id="menu-item-74" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-74"><a href="링크 주소">테스트 서브 메뉴 1</a></li>
	<li id="menu-item-41" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-41"><a href="링크 주소">테스트 서브 메뉴 2</a></li>
</ul></li>

<li id="menu-item-86" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-86"><a href="링크 주소">테스트 2</a></li>
</ul>

위의 코드는 ‘Home’, ‘Sample Page’, ‘Uncategorized’, ‘테스트’의 네 개의 메뉴가 있고, 그 중에 ‘테스트’ 메뉴의 하위에 ‘테스트 서브 메뉴 1′, ‘테스트 서브 메뉴 2′가 존재할 때 워드프레스가 출력하는 html 태그들 입니다.

아래는 li 태그에 출력되는 class name의 종류입니다.

  • menu-item-숫자 : li 아이템의 id 와 class 명으로 사용이 됩니다. menu-item 뒤에 고유숫자를 붙여서 다른 li 태그의 클래스명이나 아이디명과 중복이 되지 않습니다.
  • current-menu-item : li 태그내에 있는 링크가 현재 열려있는 웹문서의 주소와 동일할 때 출력이 됩니다.
  • current_page_item : 현재 열려있는 웹문서가 페이지의 글이고, li tag 내에 있는 링크가 해당 웹문서의 주소와 동일할 때 출력이 됩니다.
  • menu-item-home : 메뉴의 링크가 홈페이지로 가는 주소일 때 생성됩니다.
  • menu-item : 모든 메뉴의 li tag에 붙는 공통 클래스명입니다.
  • menu-item-type-custom : 워드프레스 관리자 페이지의 메뉴 페이지에서 ‘Custom Links’ 항목에 직접 링크를 입력한 경우에 menu-item-type 뒤에 ‘custom’이 붙고, ‘Pages’ 나 ‘Posts’ 항목에서 메뉴를 생성했을 때는 ‘post_type’ 이라는 클래스명이 붙고 ‘Categories’나 ‘Post Tags’에서 생성했을 경우에는 ‘taxonomy’가 클래스명에 붙습니다.( 3.0 메뉴 그림 참고 )
  • menu-item-object : menu-item-object 뒤에는 post type의 라벨(이름)이 붙습니다. 워드프레스가 메뉴 페이지에 제공하는 기본적인 항목인 Custom Links, Pages, Category, Post Tags의 라벨은 각각 custom, page, category로 menu-item-type과 동일하며, ‘Post Tags’에서 메뉴를 추가했을 때에는 ‘post_tag’가 menu-item-object 뒤에 붙습니다.
  • current-post-ancestor : 현재 열려있는 페이지가 포스트이고, 해당 포스트가 분류되어 있는 카테고리나 그 카테고리의 상위 카테고리들이 메뉴의 링크에 있을 때, 그 메뉴에 출력이 됩니다.
  • current-post-parent : 현재 열려있는 페이지가 포스트이고, 해당 포스트가 분류되어 있는 카테고리들이 메뉴의 링크에 있을 때, 그 메뉴에 출력이 됩니다. 해당 포스트를 직접 포함하고 있는 카테고리에만 출력이 되며, 그 카테고리의 상위 카테고리에는 출력이 되지 않습니다.
  • current-page-ancestor : 현재 열려있는 웹문서가 페이지 형식의 글이고, 해당 페이지의 parent page나 그 parent page의 상위 페이지들이 메뉴의 링크에 있을 때, 그 메뉴에 출력이 됩니다.
  • current-menu-parent : 현재 열려있는 웹문서(페이지나 포스트 등의 문서의 타입에 관계없이)의 해당 포스트를 직접 포함하고 있는 카테고리나, 해당 페이지의 parent page로 가는 메뉴에만 출력이 됩니다.
메뉴의 li 태그 class
클래스 이름 입력 필드

그리고, 놓치기 쉬운 것이 하나 있는데, 위의 그림처럼 ‘Appearance>Menus’ 페이지 상단에 있는 Sreen Options 버튼을 클릭하면 CSS Classes 라는 체크박스가 있는데 그 체크박스를 클릭하면, 왼쪽 그림처럼 class를 입력할 수 있는 입력필드가 생겨서 해당 li 엘리먼트에 class 명을 지정할 수도 있습니다.

카테고리의 다른 글 목록