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

Last Updated: 2023년 06월 22일 댓글

이전 글에서 워드프레스 사이트의 페이지마다 다른 헤더/푸터를 사용하는 방법에 대해 살펴보았습니다. 이 글에서는 특정 글에서 다른 헤더/푸터 혹은 특정 글에만 특정 요소를 추가하는 방법에 대해 이 글에서 살펴보겠습니다.

[ 이 글은 2023년 6월 22일에 최종 업데이트되었습니다. ]

테마 파일 수정하기

기본적으로 특정 글에 대한 코드는 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');

전체 사이트 편집(Full Site Editing) 기능을 제공하는 테마/페이지 빌더 사용하기

Divi 테마 또는 아바다 테마와 같은 워드프레스 테마나 엘리멘터 페이지 빌더와 같은 페이지 빌더 플러그인에서는 헤더에서 푸터까지 사이트의 모든 섹션을 알림판(관리자 페이지) 내에서 편집할 수 있는 전체 사이트 편집 기능을 제공합니다.

이러한 FSE(Full Site Editing) 기능을 사용하는 테마나 빌더를 사용하면 쉽게 특정 페이지에 다른 헤더나 푸터를 지정할 수 있습니다.

GeneratePress 테마를 사용하는 경우에는 Block 엘리먼트를 사용하여 페이지마다 다른 헤더/푸터/사이드바 등을 지정할 수 있습니다.

참고


댓글 남기기

Leave a Comment