워드프레스에서 특정 글에 다른 헤더/푸터 사용하기

이 글에서 페이지마다 다른 헤더/푸터를 사용하는 방법에 대해 살펴보았습니다. 그럼, 특정 글에서 다른 헤더/푸터 혹은 특정 글에만 특정 요소를 추가하는 방법에 대해 이 글에서 살펴보겠습니다.

기본적으로 특정 글에 대한 코드는 is_single()입니다.

is_single();
// 임의의 단일 글(Post) 페이지가 표시되는 경우

is_single('17');
// ID가 17인 글이 표시되는 경우

is_single(17);
// ID가 17인 글이 표시되는 경우. 이처럼 정수만 사용해도 무방

그러므로 “워드프레스에서 페이지마다 다른 헤더/푸터 사용하기”에 사용된 코드에 “is_page()” 대신에 “is_single()”을 적절하게 추가해주면 동일한 결과를 얻을 수 있을 것입니다.

그럼 단순히 특정 글보다는 특정 ‘종류’의 글에 대해 생각해볼까요? 가령 특정 종류의 글에만 헤더나 푸터를 달리 지정하고 싶은 경우가 있을 수 있습니다. 가령 해당 종류의 글에 헤더 이미지만 달리 지정한다든지 하는 경우를 생각해볼 수 있습니다. 이런 경우 카테고리나 태그(혹은 분류)를 사용하는 방법을 고려해볼 수 있을 것입니다.

예를 들어, 단일 글(single post)에 header-blogpage.php가 헤더가 사용되고 있고 카테고리 Car(슬러그가 “car”)에는 header-car.php를 사용하고 싶은 경우, single.php 파일의 get_header(‘blogpage’); 부분을 다음과 같이 수정해 주면 됩니다.

if (in_category ('car')) {
get_header('car');
}
else {
get_header('blogpage');

이 경우 is_category()가 아닌 in_category()가 사용되었습니다. is_cateogry()는 글자 그대로 “IS”(~이다)인 경우, in_category()는 “IN”(~내에) 즉 카테고리 “안에 속한” 경우로 이해하면 쉬울 것 같습니다. 그러므로 카테고리를 지칭할 경우에는 is_category()가 사용되고, 카테고리 내의 글이 사용될 때에는 in_category()가 사용되어야 합니다. 카테고리 대신 tag나 특정 taxonomy를 사용해도 무방합니다. 태그의 경우 “is_tag()“의 형태를, taxonomy(분류)의 경우 “is_tax()“의 형태로 사용됩니다.

동일하게 헤더뿐만 아니라 푸터에도 적용됩니다. get_footer(); 부분을 아래와 같이 수정할 수 있습니다.

if (in_category ('car')) {
get_footer('car');
}
else {
get_footer('blogpage');

떠나시기 전에 아무 댓글(Comments)이라도 남겨두세요.
기부를 통해 이 블로그의 운영을 후원하실 수 있습니다.