이전 글에서 워드프레스 사이트의 페이지마다 다른 헤더/푸터를 사용하는 방법에 대해 살펴보았습니다. 이 글에서는 특정 글에서 다른 헤더/푸터 혹은 특정 글에만 특정 요소를 추가하는 방법에 대해 이 글에서 살펴보겠습니다.
[ 이 글은 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 엘리먼트를 사용하여 페이지마다 다른 헤더/푸터/사이드바 등을 지정할 수 있습니다.
댓글 남기기