[워드프레스] 페이지별로 다른 헤더/푸터/사이드바 사용하기

예를 들어, 워드프레스의 첫 페이지에 표시할 헤더를 완전히 다른 레이아웃으로 표시하고 싶은 경우가 있을 수 있습니다. 이런 경우 첫 페이지에 사용할 헤더만을 별도로 만들어 연결하는 것이 가능합니다. 이를 위해서는 헤더를 불러오는 함수를 이해할 필요가 있습니다.

<?php get_header(); ?>

index.php, page.php 파일의 맨 위에 보면 보통 위와 같은 코드가 있을 것입니다. get_header() 함수는 다음과 같은 형태로 사용됩니다.

<?php get_header( $name ); ?>

가령 get_header()는 header.php 파일을 호출하고, get_header(‘home’)은 header-home.php 파일을 호출합니다.

그러므로 다음과 같이 get_header() 부분을 바꾸어주면:

<?php
if ( is_front_page() || is_home() ) :  // 전면 페이지 또는 블로그 페이지인 경우
get_header( 'home' );
elseif ( is_404() ) :    // 404 페이지인 경우
get_header( '404' );
else :
get_header();
endif;
?>

전면 페이지나 홈일 경우 header-home.php 파일을 호출하고, 404 오류가 발생할 경우 header-404.php, 그 외에는 header.php 파일을 호출합니다. 만약 개별 페이지별로 지정하고 싶은 경우

if( is_page('about')) :
get_header('about');

위와 같은 형태로 추가할 수 있습니다. 이 경우 슬러그가 ‘about’인 페이지의 헤더로 ‘header-about.php’를 호출하게 됩니다.

푸터와 사이드바에도 동일한 규칙이 적용됩니다. 예를 들어,

<?php
if ( is_front_page() || is_home() ) :  // 전면 페이지, 블로그 페이지
get_footer( 'home' );
elseif ( is_404() ) :
get_footer( '404' );
else :
get_footer();
endif;
?>

<?php get_footer(); ?> 부분에 위와 같은 코드를 사용하면 블로그 페이지(첫 페이지)와 전면 페이지에서는 footer-home.php 파일이 푸터로 호출되고, 404 페이지의 경우 footer-404.php, 이외에는 footer.php가 호출됩니다.

또, 사이드바의 경우

<?php
if ( is_home() ) :    // 블로그 페이지인 경우
get_sidebar( 'home' );
else :
get_sidebar();
endif;
?>

위와 같은 코드를 <?php get_sidebar(); ?> 부분을 대신하여 사용하면 블로그 페이지일 경우 sidebar-home.php 파일이 사이드바로 호출되고 이외에는 sidebar.php 파일이 호출됩니다.

3 thoughts on “[워드프레스] 페이지별로 다른 헤더/푸터/사이드바 사용하기”

Leave a Comment