[WordPress] 현재 카테고리 아카이브의 카테고리 ID 를 알아내는 방법

  1. 현재 카테고리 아카이브의 카테고리 ID 는 쿼리에서 가져올 수 있음
  2. 쿼리에서 카테고리 ID 를 가져오기 위해서는 get_query_var 함수를 사용 하면 됨
  3. ex) $cat_id = get_query_var('cat')

카테고리 템플릿 페이지(category.php)는 보통 현재 사용자에게 현재 카테고리에 대한 정보와 함께, 해당 카테고리의 포스트 목록을 보여주게 됩니다.

이 상황에서 현재 카테고리에 대한 정보(카테고리 이름, 설명, 주소 등등)를 불러와 표현하기 위해서는 해당 카테고리의 ID 를 알아야 정보를 불러오든지 할 수 있습니다.

get_query_var

카테고리 아카이브 페이지는 워드프레스에서 쿼리를 통해 조회가 됩니다. 이게 무슨 말이냐 하면 카테고리 페이지의 경우 원래의 주소가 아래처럼 표시 된다는 것입니다.

http://triki.net/triki/?cat=11

대충 이런식이죠. 하지만 실제로 사용자에게는 보통 저렇게 보이지 않습니다. 카테고리의 퍼머링크(Permalink, 고유주소) 때문이죠.

아무튼 쿼리에서는 cat 라는 파라미터에 카테고리의 ID 가 들어가니 이 쿼리에서 카테고리 ID 를 추출 할 수 있고, 그 역할을 하는 함수가 바로 get_query_var 함수라는 것입니다.

get_query_var: 기본 사용법

어떤 역할을 하는지만 알면 굉장히 간단한 함수입니다. WordPress Codex – get query var 에서 확인 할 수 있는 기본적인 사용법은 아래와 같습니다.

<?php get_query_var( $var, $default ) ?>
  • $var, $default 두 개의 파라미터가 사용됨
  • $var
    • (필수) 쿼리에 포함된 값 중 어떤 파라미터의 값을 가져올지
    • ex) cat, paged, …
  • $default
    • (선택) 해당 파라미터가 쿼리에 없을 때 return 할 기본 값

뭔가 복잡해 보이지만, 전혀 그렇지 않아요.

get_query_var(‘cat’)

get_query_var 함수의 기본 사용법을 알면 get_query_var('cat') 가 어떤 의미를 가지는지 알 수 있습니다. 바로 워드프레스가 사용자에게 표시할 쿼리문에서 cat(카테고리)의 값을 가져오는 것이죠.

그래서 결론적으로 아래와 같이 사용 할 수 있습니다.

$cat_id = get_query_var('cat')

이제 $cat_id 라는 변수에 현재 카테고리의 ID 가 담기게 되고, 이 ID 를 가지고 카테고리의 이름, 설명 등을 불러와 사용자에게 표시하는 작업의 초석이 완성 된 것입니다.

말로 쓰니 뭐 복잡해 보이는데.. 전혀 그렇지 않아요.