in_category() 함수로 특정 카테고리에서만 정보 노출하기

in_category() 함수의 필요성을 느낀 계기

in_category() 함수를 이야기하기 전에 먼저 이 함수를 찾게된 계기를 이야기 해보렵니다. 저는 어려서부터 책을 수집(?)하는 취미가 있습니다. 굳이 독서도 아닌, 수집이라고 표현한 이유는 제 나름의 기준에 있어서 절판 되기전에 서둘러 확보(!)해야하는 책들을 사 모으기때문입니다. 주로 미술,그래픽 관련 서적들이 그러한데요. 번역서적이 괜찮은게 한 번씩 나올때가 있습니다만 절판되거나 품절된 이후로 한 동안 출판되지 않는 책들이 있어서 아쉬움을 느꼈던 적이 몇 번 있었기 때문입니다. 그래서 가능한 조금이라도 얻을만한 정보가 있는 책이라고 판단되면 무조건 사 모으기 시작했습니다.

그렇게 모은 책들이 쌓이기만 하고 좀처럼 읽을 짬이 안나더군요.다시 생각해보니 짬이 안나는게 아니라, 책을 읽을 시간을 좀처럼 만들지 않고 있다는 생각이 들었습니다. 그래서 이 블로그를 통해서 제가 보고 있는, 보았던 책들에 대해서 리뷰를 해볼 생각이 들어서 도서리뷰 카테고리를 운영하게 되었는데요.

in_category() 소스적용전 이미지
상관없는 카테고리까지도 항목이 노출되고 있습니다.

저자와 출판사, 제 나름대로 매긴 평가점수를 따로 노출 하고 싶더군요. 그래서 ACF 플러그인을 이용해서 나름 커스텀 필드를 생성해서 노출시키는것 까지는 성공했는데, 모든 포스트 목록에 커스텀필드 관련 정보가 노출 되는게 참 거슬렸습니다.

문제해결을 위해 검색을 해봤습니다

그래서 ‘도서리뷰‘라는 특정 카테고리에서만 출판사/저자/평가점수가 노출되도록 하는 방법을 찾아봤는데요. 바로 in_category() 함수를 이용하는 방법입니다.

조잡하긴 합니다만, 위의 소스는 ‘book-review’ 카테고리일 경우 { }괄호 안의 내용들을 출력하라는 내용입니다. in_category(‘원하는카테고리’)를 입력해주는 것만으로도 특정 카테고리를 지정할 수 있는 편리한 함수더군요. 무척 간단하죠? 그리고 이렇게 만든 함수 안에 ACF(Advanced Custom Field) 플러그인을 이용해서 생성한 publisher,writter,recommend 정보들을 넣어 특정 조건(도서리뷰 카테고리)에서만 보여주는거죠.

위의 소스를 적용하고 나서 아래와 같은 상태가 됐습니다.

in_category() 소스 적용 후
도서리뷰에 해당하는 카테고리에만 관련정보가 나타납니다

이제야 비로소 원하는대로 모양새를 갖추게 됐네요. 이번에 새로 공개된 워드프레스 세븐틴(seventeen)테마가 기본적으로 갖고 있는 레이아웃이 맘에 들어서 자식테마를 만들어서 쓰고 있는 중인데, 이렇게 조금씩 고쳐가면서 쓰는것도 나쁘지 않네요. 테마를 새로 만드는건 정말 시간과 노력이 많이 필요하다보니 적절히 플러그인과 살짝살짝 이런 커스터마이징을 통해 컨텐츠에 좀 더 투자할 수 있어서 좋은 것 같다는 생각이 듭니다.

댓글