작성일자
카테고리 워드프레스/워드프레스 완벽입문 FAQ

질문> 안녕하세요.

일단 친절하게 집필해주셔서 감사합니다.

php 실력이 바닥이라 힘들긴했지만 워드프레스로 사이트 하나 만들고 나니 재미있네요 ㅎ


하다보니 궁금한점이 생겼는데요.

카테고리로 메뉴를 만들어서 카테고리 마다 다른 사이드바를 적용하고 싶은데 가능할까요??

초기페이지와 헤더, 푸터는 다중사이드바가 가능한데 카테고리는 어떻게 해야될지 모르겠어요;;


말이 조금 헷갈리긴 한데.

카테고리로 메뉴를 만들고 그 카테고리 메뉴 마다 다른 사이드바를 적용하고 싶습니다.


답변> 안녕하세요. 사실 저도 php에 대해서는 잘 모릅니다. 예전에 공부하기 했어도 지금은 php 코드를 보면 이것이 php코드구나 하는 정도랍니다. 


재밋는 발상을 하셨는데요. 책을 아마 끝까지 보셨다면 어렴풋이 방법이 생길 듯 한데요. 우선 자세한 내용은 별도로 글을 올리기로 하고 생각을 해보자면 탬플릿 계층구조를 이용하는 것입니다. 책에서 페이지의 템플릿 계층구조에 대해서 402페이지에 나옵니다 카테고리도 마찬가지의 계층구조를 갖고 있는데 질문대로 하자면 카테고리 아이디를 이용하면 되겠습니다. 하나의 카테고리를 선택했을 때 주소란에 cat=번호가 나올겁니다. 그것이 해당 카테고리의 아이디인데 이 카테고리가 선택됐을 때 사용할 템플릿 파일을 하나 만듭니다. 


만일 아이디가 31이라면 파일이름은 category-31.php이 됩니다. 기본테마에 있는 파일중 category.php를 복사해서 폴더에 붙여넣고 파일이름을 수정하면 되겠죠. 그런 다음 사이드바를 수정합니다. 책에 3개의 사이드바를 사용한 부분을 참고하면 됩니다.


카테고리의 템플릿 계층 구조는 다음과 같습니다.




이미지를 클릭하면 크게 확대됩니다. 카테고리 글은 아카이브(글 보관함)에 속합니다. 템플릿 계층구조의 순서는 그림대로 파일 이름이 category-슬러그.php, category-id.php, category.php...으로 돼 있습니다. 현재는 category.php파일을 사용하고 있으므로 슬러그나 아이디가 들어간 php파일을 만들어주면 이 파일이 우선 적용됩니다.



책에서 만든 테마로 진행합니다. 현재의 메뉴는 카테고리를 기준으로 만들어져있습니다. 메뉴에서 관리자 화면 다루기를 클릭하면 해당 카테고리의 모든 글이 나타납니다. 주소창에 보면 cat=12라고 나오죠 이것은 이 카테고리의 아이디입니다. 현재는 사이드바가 기본 사이드바를 사용하므로 우측처럼 나옵니다. 이 카테고리를 선택했을 때 다른 사이드바를 만들어 출력하도록 해보겠습니다.



테마 폴더에서 category.php 파일을 선택하고 Ctrl+C, Ctrl+V키를 차례대로 눌러주면 파일이 복사됩니다. 파일명을 위처럼 -12를 추가합니다. 이 숫자는 각각 다르므로 자신의 카테고리 아이디를 입력합니다. 이 파일을 수정해주기 위해 텍스트 편집기 엽니다.



하단에서 사이드바를 가져오는 인클루드 템플릿 태그의 매개변수를 category로 입력합니다. 따옴표도 넣으세요. 그러면 사이드바 파일을 sidebar-category.php를 만들어주면 category-12.php파일에서 sidebar-category.php 파일을 인식합니다. 이 파일을 저장합니다. 



테마폴더에서 sidebar.php파일을 복사해서 sidebar-category.php파일을 만듭니다. 이 파일을 편집기에 엽니다.



19번째 줄부터 33번 줄까지 제거합니다. 이부분은 위젯화면에서 위젯을 배치하지 않을 경우 기본적인 위젯이 나타나게 하는 것으로 필요가 없습니다. 그런다음 dynamic_sidebar 템플릿 태그의 매개변수를 sidebar-10으로 수정합니다. 책에서 그동안 위젯을 만들기 위해 많은 매개변수를 사용했습니다. 아마 sidebar-8까지 사용한 것으로 기억하는데요. 그냥 10으로 해둡니다. 번호는 상관없습니다. 파일을 저장합니다. 위와같이 새로운 위젯을 사용할 경우 함수 파일에서 위젯을 등록해줘야합니다.



테마 폴더에서 functions.php 파일을 편집기에 열고 포럼 사이드바 위젯이나 다른 사이드바 위젯을 복사해서 하단에 붙여넣습니다. 이름을 카테고리로 수정하고 id는 sidebar-10으로 수정합니다. 파일을 저장합니다.



위젯화면으로 가서 위젯영역을 보면 카테고리 사이드바 위젯이 나타납니다. 사용할 수 있는 위젯영역에서 하나의 위젯을 끌어다 배치하고 블로그 화면에서 확인합니다.



해당 카테고리의 사이드바가 설정대로 변경됐습니다. 다른 카테고리를 선택할 경우 아래처럼 원래의 사이드바가 나타납니다.





저작자 표시 비영리 변경 금지
신고
김기범

아... 친절한 답변 감사드립니다ㅠ
이제 좀 더 숙달되면 무엇이든지 만들 수 있을 것 같네요 ㅎㅎ
책이 너무 좋아서 다른 사람들한테도 추천하구 다녀야겠어요 ㅋㅋ
감사합니다 ㅎㅎ

BlogIcon 베누시안

안녕하세요. 답변이 잘 됐나보군요. 뭐든 그렇지만 혼자서 자꾸 해보면 금방 고수가 되실겁니다. 책을 좋게 봐주셔서 감사합니다.

BlogIcon 맥프레소

안녕하세요. 베누시안님
궁금한 점이 있어서 잠시 들렀습니다.
워드프레스 설정페이지에서 > 읽기 > 페이지당 글 수를 20개로 설정하면 메인에서도 20개의 포스트가 보이고 또 다른 메뉴에 들어가도 20개의 포스트가 보이는데 이것을 메인페이지에선 30개 / 다른 메뉴에선 10개 이런식으로 따로 설정하는것이 가능할까요?

BlogIcon 베누시안

안녕하세요. 이것도 재미난 발상이시네요. 제 생각으로는 읽기 설정에서 선택할 수 있는것이 하나만 선택할 수 있게 돼있어서 가능한 플러그인이 있는지 알아봐야겠습니다. 누군가 만들어놨을거 같습니다.

BlogIcon 베누시안

http://wordpress.org/extend/plugins/custom-posts-per-page/

비슷한 것이 있지만 좀더 정확한 것으로 찾아서 연구해봐야할 듯합니다.

BlogIcon 맥프레소

답변 감사합니다. 추천해 주신 플러그인으로 연구 해보겠습니다 ^^

BlogIcon 5Days

늦은 시간인데 질문하나드려도 될지요?
최근글 목록을 보면 포스팅의 최근 글이 나오는데 위젯 설정에서 사이드바에 현재 카테고리(메뉴)의 글목록만 나오게 할 수 는 없는지요? 꼭 현재 카테고리가 아니더라도 위젯에서 특정 카테고리의 글목록만 보여주는 위젯이 없는지 궁금해서 질문드립니다. ~~^^

BlogIcon 베누시안

안녕하세요. 구글에서 wordpress category list widget로 검색하면 아주 많은 플러그인이 있습니다. 슬라이드되는 것도 있고 목록만 나오는 것도 있고 썸네일이 나오는 것도 있죠. 책에서 사용한 플러그인도 같은 종류입니다. 이를 초기화면의 컨텐트 영역에 배치했지만 사이드바에도 사용할 수 있습니다. http://webdesigncss3.com/

BlogIcon 제이콥

질문하나 드려도 괜찮을까요?~지금 15년이지만 아직도 관리하시나해서 혹시나하고...
네이게이션에 있는 카테고리 목록을 눌렀을 때 그 카테고리들을 우측 사이드바로 나오게해서 위에 네비게이션이 아닌 사이드바에서도 클릭가능하도록 구동하고 싶은데 혹 괜찮은 플로그인이나...위젯을 변경해서 설정해 줄 수는 없는지 궁금합니다

티스토리 툴바