안녕하세요. 린치핀소프트 한광희입니다.

 

오늘 포스트에서는 “term order”에 대해서 설명합니다. “term_order”란 워드프레스를 구성하는 데이터베이스 테이블 중 “wp_terms” 라는 테이블의 항목(Column)중에 하나입니다.

“term_order”는 항목명칭과 마찬가지로 term의 “순서”를 저장하는 항목입니다. 이 항목이 의미하는 바는 등록된 택소노미(Taxonomy)의 텀(Term)의 “순서”를 설정 할 수 있다는 것입니다. 저희가 최근 개발한 웹 아카이브 시스템에서 이 “term_order”를 활용하여 개발을 한 적이 있습니다.

각, 연도별로 포스트를 보여주어야 하는데, 이때 연도를 정렬하고자 할때 이 “term_order”를 사용하였습니다. 물론, 여기서 “연도”는 택소노미로 구성하였습니다.

 

screenshot-2016-04-29 13-45-07

위 화면처럼 각 택소노미의 텀별로 “term_order”가 지정되어 있다면 데이터베이스에 term_order 정보가 숫자로 저장됩니다.

 

이처럼, 각 택소노미의 텀별로 순서를 정렬하고 싶을때 아주 유용한것이 “term_order”인데 아쉽게도 워드프레스 택소노미 입력화면에서는 기본적으로 “term_order”를 입력하게끔 지원하는 시스템이 존재하지 않습니다. 그래서 오늘은 term_order를 쉽게 지정할 수 있는 플러그인인, “Category Order and Taxonomy Terms Order”를 소개합니다.

 

screenshot-2016-04-29 13-49-08

<Category Order and Taxonomy Terms Order>

Category Order and Taxonomy Terms Order(이하 카테고리 오더) 플러그인을 설치하면 아래와 같은 메뉴가 생성됩니다.

screenshot-2016-05-02 23-35-52

위와 같이 “term”이 계층구조(부모-자식)로 되어 있어도 문제 없습니다. 각 레벨(단계)별로 term_order는 개별적으로 설정됩니다.

위의 화면처럼 카테고리 오더 플러그인은 각 포스트 타입별로 “Taxonomy Order”라는 서브 메뉴를 생성하며, 해당 메뉴에서 생성된 택소노미를 D&D(드래그 앤 드롭) 방식으로 정렬 할 수 있습니다. 정렬을 끝내고 “Update” 버튼을 클릭하여 저장하면 wp_terms 데이터베이스 테이블에 “Term Order”가 저장됩니다.

그러면 이렇게 저장된 term_order를 어떻게 활용할까요?

get_terms()와 같은 워드프레스 함수를 사용하여 term과 term의 정보들을 불러올수 있습니다.

 

[2] => WP_Term Object
(
  [term_id] => 39
  [name] => 2015
  [slug] => 2015
  [term_group] => 0
  [term_taxonomy_id] => 39
  [taxonomy] => lcpstory_year
  [description] =>
  [parent] => 0
  [count] => 7
  [filter] => raw
  [term_order] => 3
)

위처럼 get_terms()와 같은 워드프레스 함수를 이용하면 해당 택소노미 하위의 term들을 불러올수 있으며 각 term의 “term_order”도 위의 배열에 참조할수 있습니다.