워드프레스 쇼핑몰, 웹사이트

사이트 이미지
쇼핑몰

남성의류 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
웹사이트

회원관리 사이트

회원관리 프러그인을 이용한 학회 홈페이지.

사이트 이미지
쇼핑몰

면도기 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
쇼핑몰

해외 쇼핑몰

해외 대상 쇼핑몰. 다양한 플러그인 사용됨.

사이트 이미지
쇼핑몰

강아지 용품 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

포트폴리오 보기

블로그 인기글

커스텀 디자인

여러 종류의 플러그인을 이용해 페이지와 콘텐츠를 커스텀 디자인

Brizy Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Elementor Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Advanced Custom Field Pro

사용자 정의 필드

커스텀 콘텐츠 작업에 필요한 플러그인

Pods

사용자 정의 콘텐츠 타입

기본 콘텐츠 타입외에 다양한 형태의 콘텐츠 생성.

블로그

질문> 안녕하세요.

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

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으로 수정합니다. 파일을 저장합니다.



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



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